Android: Formas de manejar un evento
Escribo esto casi como un recordatorio de las posibles formas de manejar eventos en Android, pongo por caso cómo manejar los eventos OnClick de un botón:
Inline:
1 2 3 4 5 | this.btnCalcular.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { calcularRuta(); } }); |
Con un delegado:
1 2 3 4 5 6 7 8 9 | private OnClickListener btnMyLocation_OnClick = new OnClickListener() { @Override public void onClick(View v) { // Desde aquí no tenemos acceso a la clase // así que podemos llamar a una método de // la clase para modificarla } }; this.btnMyLocation.setOnClickListener(this.btnMyLocation_OnClick); |
Implementando OnClickListener como una interfaz (esta opción no permitiría manejar eventos OnClick diferenetes salvo que hagamos un switch del View en la función OnClick para identificarlo):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class ExampleActivity extends Activity implements OnClickListener { protected void onCreate(Bundle savedValues) { ... Button button = (Button)findViewById(R.id.corky); button.setOnClickListener(this); } // Implement the OnClickListener callback public void onClick(View v) { switch(v.getId()) { case(R.id.corky): ... } } ... } |
En el XML del layout:
1 2 3 4 | <Button android:onClick="metodo" ... /> |
1 2 3 4 | public void metodo(View v) { //hacer algo } |
(fuente: http://developer.android.com/guide/topics/ui/ui-events.html)


The Walking Dead Spain