Mi solicitud tiene 17 ImageButtons la que cada uno de ellos tiene una imagen de animales y si el usuario hace clic en él .Es voz animales jugó para el usuario.
Como ya he dicho tengo 17 ImageButtons .Si quiero fijar OnClickListener para cada uno de ellos .TENGO escribir button.setOnCLickListenr(/*implementation*/);
o button.setOnCLickListenr(this);*
(dentro de la implementación de la interfaz View.OnClickListener) 17 veces .
Mis botones no están cerca de ellos y lo que no puedo usar RecyclerView , ListView o GridLayout .
¿Hay alguna manera de disminuir el número de OnClickListener de 17 veces para bajar. o simplemente utilizar setOnClickListener método de una vez
Gracias...
Siga estos pasos Esto le ayuda.
Primero: Definir android:onClick="animalOnCLick"
para cada uno de sus ImageButtons. Este atributos hacen androide para ejecutar método público específico ( !!! aviso: el método debe ser pública ) cuando evento onclick ocurre en el dispositivo del usuario.
Disposición Implementación
<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-->
Segundo: Declarar un método público con el mismo nombre que ha escogido en frente de Andorid: OnClick atributo y pasar un argumento que es el tipo de Vista
public void animalOnCLick(View view) {
/* your implementation*/
}
Tercero: A continuación, póngase al hacer clic en una vista de ID que es en realidad el ImageButton actual hace clic con el Idview.getId()
Y poner en práctica su única aplicación para cada una de sus ImageButtons de la siguiente
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
}
}