Mar 22

Móviles, “the hard way”

Esta mañana, como todas las mañanas de día laborable, estaba desayunando en mi cafetería habitual antes de ir a trabajar. La camarera estaba hablando con uno de los clientes y comentaban el precio de un móvil que libre costaba unos 300€, pero si hacías contrato costaba unos 80€. Por supuesto, sería un móvil de estos güay que ahora, imagino que con Android o similar.

Mi móvil es un "patatófono", el de la foto, con java JME, con teclas y todo, de tarjeta prepago porque soy muy rácano y encima lo uso como hucha, ya que cada 6 meses le meto dinero para que no se caduque la tarjeta y como pasa el 99% del tiempo apagado, tampoco lo gasto.

Sin embargo, la conversación de la camarera me ha hecho pensar que todos estamos "pillados" por los móviles de última generación. Ella con su cliente de la forma habitual, pendiente de los "wasaps" mientras pone cafés, y yo, raro de mí, de la forma "dura". Justo mientras ella hablaba con el cliente, yo estaba desayunando y leyendo "Programming Android: Java Programming for the new generation of Mobile Devices".

Aprovecho para comentar que el libro no me está gustando demasiado. Voy aproximadamente por la página 150 de sus 550 y todavía está explicándome que eclipse tiene autocompletar. Hasta ahora va explicando las cosas metiéndose en detalles sueltos muy profundos, pero explicándolos por encima y sin dar un "esquema general". Por ejemplo, primero explica java en un capítulo, pero evidentemente muy por encima. Luego cuenta el SDK de Android con todas sus herramientas en otro capítulo, describe un montón de herramientas que vienen con el SDK, pero metiéndose en detalles sin explicarlos claramente. Luego se mete con detalles que considera importantes de la programación Android, como liarse a explicar programación concurrente, tema un poco "farragoso" para empezar por él, y nuevamente se mete en detalles sin explicarlos claramente.

Sigo leyendo, enganchado como estoy al "hard way" de los móviles.

Apr 06

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.