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.