jueves, 17 de mayo de 2012

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
}

No hay comentarios:

Publicar un comentario