juanito21 Posté(e) 11 décembre 2011 Share Posté(e) 11 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shoohei Posté(e) 12 décembre 2011 Share Posté(e) 12 décembre 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()); Lien vers le commentaire Partager sur d’autres sites More sharing options...
nbbu Posté(e) 12 décembre 2011 Share Posté(e) 12 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
juanito21 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.