2010-08-03 4 views
7

J'ai une question à propos de l'implémentation de OnClickListeners pour développer avec l'ADT. Je ne suis pas sûr de la façon dont est plus efficace, quelqu'un peut-il s'il vous plaît me fournir des avantages et des inconvénients de chaque approche?implémente OnClickListener VS. nouveau 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 vous voulez seulement que le bouton soit cliquable, certainement le 2ème, même si je suis sûr que quelqu'un d'autre va aller dans beaucoup plus de détails. – Falmarri

Répondre

8

Je pense que la plupart du temps un cas de préférence personnelle. Toute différence de performance sera probablement négligeable.

Personnellement, je préfère la classe imbriquée:

  1. Son plus difficiles à bousiller
  2. instructions switch sont laids
  3. Vous pouvez utiliser des variables locales qui peuvent être utiles

Mais certaines personnes pensent que les classes imbriquées sont laides, et préfèrent donc l'approche implements. Cette approche fonctionne mieux si vous n'avez qu'un seul écouteur implémenté dans l'activité.

+0

Merci Mayra :-D – jr3

Questions connexes