juanito21 Posted December 11, 2011 Share Posted December 11, 2011 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 Link to comment Share on other sites More sharing options...
Shoohei Posted December 12, 2011 Share Posted December 12, 2011 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()); Link to comment Share on other sites More sharing options...
nbbu Posted December 12, 2011 Share Posted December 12, 2011 Cette façon de faire utilise "Les classes internes anonymes" Pour plus d'information tu peux consulter l’excellent site de jmdoudoux : http://www.jmdoudoux...p-poo.htm#poo-8 Chapitre 4.8.3 Link to comment Share on other sites More sharing options...
juanito21 Posted December 13, 2011 Author Share Posted December 13, 2011 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 ! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.