アンドロイドでXMLレイアウト内のビューでGenaralのonclickを設定するには?

アリレザBideli:

私のアプリケーションは17持ってImageButtonsそれらのそれぞれは、動物のイメージを持っており、それをユーザーがクリックする場合.That動物の声がユーザーのために遊びました。

私が言ったように私は設定したい.IF私は17 ImageButtonsを持っOnClickListener記述する必要が.Iそれらのそれぞれについて、button.setOnCLickListenr(/*implementation*/);またはbutton.setOnCLickListenr(this);*(View.OnCLickLIstenerインタフェースの実装内)17回

私のボタンが近くそのものにではなく、私は使用することはできませんRecyclerViewリストビューまたはGridLayoutのを

下げるために17回からOnClickListenerの数を減少させる方法はあります。あるいは単に使用setOnClickListenerの後にメソッドを

おかげで...

アフマド:

この意志はあなたを助け、次の手順を実行します。

まず:定義android:onClick="animalOnCLick"あなたImageButtonsごとに。この属性は、特定のパブリックメソッドを実行するには、Android作る(!!!予告:あなたの方法があるべき公共の)とき、onClickイベントは、ユーザ装置で発生します。

レイアウトの実装

   <ImageButton
        android:id="@+id/btn_cow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cow"
        android:onClick="animalOnCLick" <!-- Added -->
        <!-- rest of imageButton attributes
        />
      <!-- other ImageButtons-->

第二:あなたは目の前に設定した同じ名前のパブリックメソッドを宣言しandorid:クリック時の属性との種類である引数渡しビュー

public void animalOnCLick(View view) {
    /* your implementation*/
}

第三:そして、現在のビューIdをクリックします実際に現在のImageButtonを持つユーザーIDをクリックしますview.getId()

そして、あなたの実装のユニークなあなたImageButtonsのそれぞれの実装を以下のように

    public void animalOnCLick(View view) {
      switch (view.getId())
      {
          case R.id.btn_cow:
              /*Cow onCLick implementation*/
              break;
          case R.id.btn_goat:
              /*Goat onCLick implementation*/
              break;
      /*Other ImageButtons      
    }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=312822&siteId=1