droid68 Posté(e) 8 avril 2011 Share Posté(e) 8 avril 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
emulienfou Posté(e) 9 avril 2011 Share Posté(e) 9 avril 2011 Tu peut créer un objet de cette classe : en fesant MesMenu mesMenu = new MesMenu(); Lien vers le commentaire Partager sur d’autres sites More sharing options...
droid68 Posté(e) 11 avril 2011 Auteur Share Posté(e) 11 avril 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 avril 2011 Share Posté(e) 11 avril 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é Lien vers le commentaire Partager sur d’autres sites More sharing options...
droid68 Posté(e) 11 avril 2011 Auteur Share Posté(e) 11 avril 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 !) Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 11 avril 2011 Share Posté(e) 11 avril 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
droid68 Posté(e) 11 avril 2011 Auteur Share Posté(e) 11 avril 2011 Super merci :) je vais tester 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.