Aller au contenu

[Débutant] Petite aide sur un code d'écouteur de bouton


juanito21

Recommended Posts

Bonjour à tous,

Étant attirÉ par Android et par son dÉveloppement, je me suis mis aujourd'hui à apprendre le dÉveloppement sous android, en utilisant son SDK basÉ sous Java.

J'ai dÉjà les bases en Java, mais malheureusement je ne comprend pas entièrement, ce code

public class Android_testActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);

	((Button)findViewById(R.id.bouton)).setOnClickListener(new OnClickListener() {
	 public void onClick(View v) {
	  Toast.makeText(Android_testActivity.this, "c'est bon !", Toast.LENGTH_LONG).show();
	 }
	});
}
}

Après m'être instruis sur Android, et quelques essaies, j'en suis venue à crÉer un bouton.

Mon code marche, cependant je comprend pas à partir de cette ligne :

((Button)findViewById(R.id.bouton)).setOnClickListener(new OnClickListener() {

Je ne pensais pas qu'en Java on pouvais mettre en paramètre une redÉfinition de classe et je trouve ça complètement illogique.

Si vous pouviez m'en dire plus sur ce procÉdÉ... Merci :)

PS : Mon bouton est dÉfini dans mon main.xml

Lien vers le commentaire
Partager sur d’autres sites

Je vois 3 façons de faire.

La première, c'est celle que tu viens de montrer. C'est un peu moche mais on voit bien le lien entre le bouton et la méthode "onClick".

La 2ème, c'est d'ajouter implement à ta classe pour qu'elle serve aussi de Listener :

public class Android_testActivity extends Activity implement OnClickListener {
@Override
public void onClick(View v) {
	Toast.makeText(Android_testActivity.this, "c'est bon !", Toast.LENGTH_LONG).show();
}
}

avec

((Button)findViewById(R.id.bouton)).setOnClickListener(this);

Après si tu utilises plusieurs boutons faut utiliser un switch/case dans le "onClick", regardes ici :

http://stackoverflow...onclicklistener

La 3ème est de créer une classe java spécialement pour le Listener, par exemple :

MyOnclickListener implements OnClickListener {
 private Context context;
 public MyOnclickListener(Context context) {
this.context = context;
 }

 @Override
 public void onClick(View arg0) {
Intent intent = new Intent(context, MyActivity.class);
context.startActivity(intent);
 }
}

et

((Button)findViewById(R.id.bouton)).setOnClickListener(new MyOnclickListener());

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...