2010-08-03 38 views
7

Tengo una pregunta acerca de cómo implementar OnClickListeners para el desarrollo con el ADT. No estoy seguro de qué manera es más eficiente, ¿alguien puede darme pro y contras de cada enfoque?implementa OnClickListener VS. nuevo Button.OnClickListener() {};

class x extends Activity implements OnClickListener 
{ 
    button.SetOnClickListener(this); 
    OnclickListener(View v) 
    { 
    switch(v.getGetId()); 
    { 
     case R.id.y: 
     //do stuff here 
     break; 
     . 
     . 
     . 
    } 
    } 

} 

< -VERSUS->

class a extends Activity 
{ 
    . 
    . 
    . 
    btn.setOnClickListener(new Button.OnClickListener() 
    { 

    OnClickListener(View v) 
    { 
     //do stuff here 
    } 

    }); 

} 
+1

Si sólo desea que el botón sea el hacer clic, sin duda el segundo uno, aunque estoy seguro de que alguien va a entrar en muchos más detalles. – Falmarri

Respuesta

8

Creo que es sobre todo un caso de preferencia personal. Cualquier diferencia en el rendimiento probablemente sea insignificante.

Personalmente, prefiero la clase anidada:

  1. es más difícil de meter la pata
  2. declaraciones del interruptor son feos
  3. se puede hacer uso de variables locales que puede ser útil

embargo, algunas personas piensan que las clases anidadas son feos, y así prefieren el enfoque de los implementos. Ese enfoque funciona mejor si solo tiene un oyente implementado en la actividad.

+0

Gracias Mayra :-D – jr3

Cuestiones relacionadas