Jump to content

Archived

This topic is now archived and is closed to further replies.

juanito21

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

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

Share this post


Link to post
Share on other 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());

Share this post


Link to post
Share on other sites

Merci pour vos réponses qui m'ont aidé !

Je connaissais pas le concept des classes anonymes. Je sais maintenant un peu plus, encore merci !

Share this post


Link to post
Share on other sites





×
×
  • Create New...