Cómo establecer Genaral onclick de vistas en las ventanas XML en Android?

Alireza Bideli :

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...

Ahmad:

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      
    }
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=312825&siteId=1
Recomendado
Clasificación