Tema: [ SOLUCIONADO ] Declarando función de botón
Ver Mensaje Individual
  #2  
Viejo 24/12/11, 20:07:29
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
A ver, con el código que has puesto sería más correcto el primer método, aunque ambos métodos son correctos.

Y ahora te explico la diferencia, en el segundo método tienes una condición de que solo se ejecute el código si el botón que has pulsado es boton1 (eso es lo que hace el switch), pero el código lo estás asociando directamente a boton1, con lo cual es redundante y sobra.

Y ahora, ¿para que sirve entonces ese switch?

El método setOnClickListener recibe como parametro un objeto de tipo OnClickListener, el cual puede estar ya definido a priori, y así usar el mismo código para varios botones, lo que ocurre es que la mayoría de la gente (y yo me incluyo) lo asociamos directamente al botón poniendo el new OnClickListener() en el método setOnClickListener.

Así que ese switch solo tiene sentido en un caso como el siguiente:

Código:
OnClickListener click = new OnClickListener() {  
           @Override
             public void onClick(View v) {
                      switch (v.getId()) {  
                           case R.id.boton1:
                               Intent intent = new Intent(Uno.this, Dos.class);
                               startActivity(intent);
                               finish();
                               break;
                           case R.id.boton2:
                               Intent intent = new Intent(Uno.this, Tres.class);
                               startActivity(intent);
                               finish();
                               break;
                              }
                       } 
              };
boton1.setOnClickListener(click);
boton2.setOnClickListener(click);
Este código usa el mismo OnClickListener, pero según el botón que haya ejecutado el código se ejecutará un código u otro.

Espero haberte aclarado la duda.

Última edición por kriogeN Día 24/12/11 a las 20:10:12.
Responder Con Cita