Android: Varios botones que ejecutan el mismo OnClickListener

He empezado a jugar con Android y aparte de ir aprendiendo, aquí una primera "cosilla" que me ha llamado la atención.

Puede suceder que queramos que varios botones, al hacer click en ellos, ejecuten un mismo OnClickListener. Una forma de hacerlo desde código es, desde luego, crear e instanciar la clase OnClickListener e ir añadiéndola a todos los botones uno a uno.

MiOnClickLIstener miListener = new MiOnClickListener();
boton1.setOnClickListener(miListener);
boton2.setOnClickListener(miListener);

botonN.setOnClickListener(miListener);

 

Pero la forma que me ha llamado la atención es que se puede hacer esto mismo desde el fichero xml donde definimos nuestra Activity (ventana). Para ello, en el fichero xml de la Activity donde están los botones podemos poner

<Button android:onClick="pulsadoBoton" android:text="1" />
<Button android:onClick="pulsadoBoton" android:text="2" />

<Button android:onClick="pulsadoBoton" android:text="N" />

Y luego, en el código de nuestra Activity, sólo tenemos que definir un método pulsadoBoton(View v)

public class MiActivity extends Activity {
   public void onCreate(Bundle savedInstanceState) {
      …
   }

   public void pulsadoBoton(View v) {
      // Aquí lo que queramos que hagan los botones
   }
}

Y listo, esto debería funcionar. Creo que sólo vale para versiones más o menos nuevas de Android.

 

 

Esta entrada ha sido publicada en Android y etiquetada como . Guarda el enlace permanente.

Una respuesta en “Android: Varios botones que ejecutan el mismo OnClickListener

  1. Samuel dijo:

    Eso funciona desde android 1.6 (API level 4), si no me equivoco.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.