droid68 Posted April 8, 2011 Share Posted April 8, 2011 Bonjour, C'est une question idiote :) mais comment de ma classe "Main" je peux faire pour appeler mon autre classe "MesMenu" pour afficher le menu ? (onCreateMenu) merci de votre réponse Link to comment Share on other sites More sharing options...
emulienfou Posted April 9, 2011 Share Posted April 9, 2011 Tu peut créer un objet de cette classe : en fesant MesMenu mesMenu = new MesMenu(); Link to comment Share on other sites More sharing options...
droid68 Posted April 11, 2011 Author Share Posted April 11, 2011 Tu peut créer un objet de cette classe : en fesant MesMenu mesMenu = new MesMenu(); Merci pour ta réponse mais ....mais ce n'est franchement pas clair ! et après je l'appel comment ... public class choixcircuit extends Activity { Button bouton; @Override protected void onCreate(Bundle savedInstanceState) { } Mon autre classe MonMenu.java public class monMenu extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //Méthode qui se déclenchera lorsque vous appuierez sur le bouton menu du téléphone public boolean onCreateOptionsMenu(Menu menu) { //Création d'un MenuInflater qui va permettre d'instancier un Menu XML en un objet Menu MenuInflater inflater = getMenuInflater(); //Instanciation du menu XML spécifier en un objet Menu inflater.inflate(R.menu.menu, menu); //Il n'est pas possible de modifier l'icône d'entête du sous-menu via le fichier XML on le fait donc en JAVA //menu.getItem(0).getSubMenu().setHeaderIcon(R.drawable.option_white); return true; } //Méthode qui se déclenchera au clic sur un item public boolean onOptionsItemSelected(MenuItem item) { //On regarde quel item a été cliqué grâce à son id et on déclenche une action switch (item.getItemId()) { case R.id.option: // appel les préférences du joueur return true; case R.id.quitter: //Pour fermer l'application il suffit de faire finish() finish(); return true; } return false;} } Si vous pouviez m'aider encore un ti peu :) Merci Link to comment Share on other sites More sharing options...
chpil Posted April 11, 2011 Share Posted April 11, 2011 C'est au niveau d'une Activity que doit être géré le menu, donc, c'est dans ta classe choixcircuit que tu devrais implémenter les méthodes onCreateOptionsMenu et onOptionsItemSelected. Et tu n'as pas besoin de la classe MonMenu, qui ne t'es ici d'aucune utilité Link to comment Share on other sites More sharing options...
droid68 Posted April 11, 2011 Author Share Posted April 11, 2011 C'est au niveau d'une Activity que doit être géré le menu, donc, c'est dans ta classe choixcircuit que tu devrais implémenter les méthodes onCreateOptionsMenu et onOptionsItemSelected. Et tu n'as pas besoin de la classe MonMenu, qui ne t'es ici d'aucune utilité Ok cela je l'avais bien compris le coup de l'activity. Quand je mets tout le code dans choixcircuit cela fonctionne très bien. Mais, ce n’est pas ce que je veux faire si par la suite je veux rappeler monmenu dans une autre classe, il faut que je remette tout le code dans cette nouvelle classe .... cela me parait étrange alors que je pourrais juste faire un appel à cette classe depuis plusieurs autres classes merci de m'indiquer par un exemple juste comment faire pour appeler ma classe monmenu depuis ma classe choixcircuit! :) ou de m'indiquer ci cela est impossible (mais je n'y crois pas !) Link to comment Share on other sites More sharing options...
chpil Posted April 11, 2011 Share Posted April 11, 2011 Ok, je ne voyais pas la finalité; mais si le but est de factoriser le code, dans ce cas tu peux utiliser le mécanisme d'héritage pour ce faire. Tu mets dans ta classe commune (ici, MonMenu) le code que tu souhaites réutiliser dans plusieurs Activity. Et pour bien faire, tu la rends abstraite public abstract class monMenu extends Activity { //Méthode qui se déclenchera lorsque vous appuierez sur le bouton menu du téléphone public boolean onCreateOptionsMenu(Menu menu) { .... } //Méthode qui se déclenchera au clic sur un item public boolean onOptionsItemSelected(MenuItem item) { .... } } Puis, tu fais hériter ton Activity de cette classe (et non plus directement d'Activity) public class choixcircuit extends monMenu { .... Si tu implémentes une autre Activity qui a besoin des mêmes fonctionnalités, il te suffira de lui faire elle-aussi hériter de la même classe pour en bénéficier Link to comment Share on other sites More sharing options...
droid68 Posted April 11, 2011 Author Share Posted April 11, 2011 Super merci :) je vais tester Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.