Listeners

Event listeners

  • Ligados a la vista
  • Distintos tipos (onClick, onKey, onTouch, ...)
  • Tres maneras de implementarlos:
    • Creando un nuevo elemento de la clase listener
    • Implementando con clase actual
    • Creando nuestra propia clase listener
    • Asignando una función por xml

1er método

  • Creamos el elemento listener y definimos su función onClick (en este caso) :

 

OnClickListener lis = new OnClickListener(){
    @Override
    public void onClick(View v){
        //Hacer lo que se quiera
    }
};
button.setOnClickListener(lis);

2º método

  • Hacemos que la clase actual implemente la clase listener:
public class JediActivity extends Activity implements OnClickListener{

    @Override
    public void onClick(View v){
        //Hacer lo que se quiera
    }
    button.setOnClickListener(this);
    ...
}

3er método

  • Creamos una nueva clase que extienda listener y la utilizamos:
private class MyListener extends Listener{
    ...
    public void myFuncionPersonalizada(View v){
        ..
    }
    ...
}

4º método

  • Dado un botón (por ejemplo) definido en XML :
public void cambiarDeActivity(View v){
    //Código necesario    
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Otros layouts -->
<Button android:id="@+id/mybutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Púlsame"
    android:onClick="cambiarDeActivity" />

Muy importante pasar la vista como parámetro!

Este método es delicado ya que se va a buscar la función a la Activity. 

Si se utilizan fragments, la función tendrá que estar definida en la activity que lo aloja!

Listeners

By marcos_perez

Listeners

  • 764