私のアプリケーションは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
}
}