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.
Eso funciona desde android 1.6 (API level 4), si no me equivoco.