2013-08-19 3 views
3

Je suis nouveau sur le développement android. J'ai un doute. Je sais que vous pouvez ajouter un bouton et l'initialiser commeQuel est le meilleur moyen d'ajouter un bouton?

Button b1=(Button) findViewById(R.id.button1); 

et je peux aussi donner un nom de fichier dans le Onction XML.

android:onClick="click_event" 

Mon doute est, quel est le meilleur et le plus efficace? Comme il est dit qu'il vaut mieux utiliser la ressource @string au lieu d'une ressource codée en dur.

Répondre

9

Je pense que vous êtes confus. Les exemples que vous donnez sont deux choses différentes.

Ajout d'un bouton

Cette ligne

Button b1=(Button) findViewById(R.id.button1); 

ne pas ajouter un Button. Il déclare et initialise une instance de Button qui fait référence à un Button dans votre actuellement xml gonflé qui a une id de button1

Donc, dans votre xml que vous auriez quelque part

<Button 
    android:id="@+id/button1" 
    <!-- other properties --> 
/> 

Vous pouvez ajouter un Button programme avec

Button bt1 = new Button(this); 
// give it properties 

Mais il est généralement plus facile à faire en XML parce que vous devez lui donner par programme les paramètres, propriétés, et ajouter à un layout gonflé

Surclic

En ce qui concerne le onClick() cela dépend de ce que vous ressentez est le plus facile et le mieux dans votre situation. Je tiens à le déclarer dans le xml comme ça souvent, mais vous pouvez le faire de plusieurs façons.En utilisant cette méthode, vous devez juste pour être sûr que vous avez une fonction comme celui-ci qui est public et ne prend qu'un seul paramètre et ce paramètre doit être un View

public void clickEvent(View v) 
{ 
    // code here 
} 

J'ai aussi changé le nom pour que votre xml serait comme

<Button 
    android:id="@+id/button1" 
    <!-- other properties --> 
    android:onClick="clickEvent"/> 

Vous pouvez également définir onClick() dans votre Java avec quelque chose comme

Button b1=(Button) findViewById(R.id.button1); 
b1.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     // code here 
    } 
}); 

ou

Button b1=(Button) findViewById(R.id.button1); 
b1.setOnClickListener(this); 

    @Override 
    public void onClick(View v) 
    { 
     // code here 
    } 

Notez que la dernière façon, vous devrez ajouter implements OnClickListener dans votre Activity déclaration

public class MyActivity extends Activity implements OnClickListener 
{ 

Vous pouvez créer votre propre clic Listener en changeant à quelque chose comme

b1.setOnClickListener(myBtnClick); 

puis créez une instance avec quelque chose comme

public OnClickListener myBtnClick = new OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
     // click code here  
    } 
}; 

Vous pouvez l'utiliser pour plusieurs Button s et allumer la id ou consultez le View savoir qui param Button a été cliqué ou créer Listeners séparés pour les différents Button s.

Questions connexes