Android faqs (I): Un clickHandler para varios botones

Con el objetivo de documentar algunas de las preguntas frecuentes que surgieron en los Android Bootcamps, inicio una serie de tips para principiantes en el desarrollo de aplicaciones para Android.

Una de las preguntas frecuentes: ¿Cómo hago para manejar los eventos onClick si tengo varios botones en una misma Actividad?

Para ello, en el método onClick debo obtener el id del objeto de la clase View que recibo como parámetro y luego, por ejemplo, utilizar una estructura switch-case para realizar la acción que corresponda en cada caso:

public class EjemploActivity extends Activity implements OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ejemplo);
       
        Button aceptarButton = (Button) findViewById(R.id.buttonAceptar);
        aceptarButton.setOnClickListener(this);                               

        Button cancelarButton = (Button) findViewById(R.id.buttonCancelar);
        cancelarButton.setOnClickListener(this);
    }
   

    @Override
    public void onClick(View arg0) {
        switch (arg0.getId()) {
        case R.id.buttonAceptar:
            //aquí va código de acción a realizar           
            break;
        case R.id.buttonCancelar:
            //aquí va código de acción a realizar                      
            break;
        }
       
    }
   
}


Comentarios

Entradas populares de este blog

Android faqs (II): Agregar una imagen a un botón

GDG DevFest Uruguay 2012

GDG Latam Summit & Tech Talks 2012