Aller au contenu

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

droid68

Comment appeler une autre class ?

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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é

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...