jueves, 28 de marzo de 2013

Manejadores de Eventos

Android captura los distintos eventos de usuario de forma homogénea y se los pasa a la clase encargada de recogerlos para ello se utiliza un objeto de tipo View y dispone de dos técnicas para recoger los eventos:
  • Escuchadores de eventos (Event Listener) : es una interfaz de la clase View que contiene un método callback que ha de ser registrado,este método será llamado por Android cuando se produzca la acción correspondiente. Para registrar un escuchador disponemos de dos formas:

      - Button boton = (Button)findViewById(R.id.boton); 
      boton.setOnClickListener( new OnClickListener() {
      public void onClick(View v) {
      // Acciones a realizar
      }
      });

      - La segunda alternativa consiste en implementar la interfaz OnClickListener como parte de tu clase y recoger los eventos en el método onClick(). public class Ejemplo extends Activity implements OnClickListener{ protected void onCreate(Bundle savedValues) { Button boton = (Button)findViewById(R.id.boton); boton.setOnClickListener(this); } public void onClick(View v) { // Acciones a realizar } }
Diferentes escuchadores de eventos:
    • onClick():Método de la interfaz View.OnClickListener. Se llama cuando el usuario selecciona un elemento. Se puede utilizar cualquier medio como la pantalla táctil, las teclas de navegación o eltrackball.
    • onLongClick():Método de la interfaz View.OnLongClickListener. Se llama cuando el usuario selecciona un elemento durante más de un segundo.
    • onFocusChange():Método de la interfaz View.OnFocusChangeListener. Se llama cuando el usuario navega dentro o fuera de un elemento.
    • onKey():Método de la interfaz View.OnKeyListener. Se llama cuando se pulsa o se suelta una tecla del dispositivo.
    • onTouch():Método de la interfaz View.OnTouchListener. Se llama cuando se pulsa o se suelta o se desplaza en la pantalla táctil.
    • onCreateContextMenu():Método de la interfaz View.OnCreateContextMenuListener. Se llama cuando se crea un menú de contexto.
  • Manejadores de eventos (Event Handler):Si estás creando un descendiente de la clase View, podrás utilizar varios métodos (callback) directamente usados como manejadores de eventos por defecto (Event Handlers). En esta lista se incluye:
    • onKeyDown(int keyCode, KeyEvent e) Llamado cuando una tecla es pulsada.
    • onKeyUp(int keyCode, KeyEvent e) Cuando una tecla deja de ser pulsada.
    • onTrackballEvent(MotionEvent me) Llamado cuando se mueve el trackball.
    • onTouchEvent(MotionEvent me) Cuando se pulsa en la pantalla táctil.
    • onFocusChanged(boolean obtengoFoco, int direccion, Rect prevRectanguloFoco) Llamado cuando cambia el foco.
    Es la forma más sencilla, dado que no hace falta usar una interfaz, ni registrar el método callback. Como en nuestro ejemplo estamos creando JuegoView, que es un descendiente de View, podremos utilizar directamente manejadores de evento.