Dans les applications Android pour créer un menu il faut implémenter (écrire) la méthode onCreateOptionsMenu décrivant son menu, et la méthode onOptionsItemSelected pour les actions du menu, lire ce tuto Développez une application pour android etape 2 (le menu).
Par contre quand votre application commence à avoir plusieurs pages, ça devient très vite compliqué de gérer son menu, parce qu’à chaque fois qu’on rajoute un item dans un menu il faut repasser dans toutes ses classes.
Une des solutions, est de créer une classe MonMenu.java dans laquelle j’implémente les différents items et actions de mon menu.
public class MonMenu extends Activity{
private Context lecontext=this;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
boolean result = super.onCreateOptionsMenu(menu);
int i=0;
//inflater.inflate(R.menu.menurepas, menu);
SubMenu Menu1 = menu.addSubMenu(0,1,i,"Menu1");i++;
SubMenu Menu2= menu.addSubMenu(0,2,i,"Menu2");i++;
//**************sous menu****************************
Menu1.add(1,11,1,"Sousmenu11");
Menu1 .add(1,12,2,"Sousmenu12");
Menu2.add(1,21,1,"Sousmenu21");
Menu2.add(1,22,2,"Sousmenu22");
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
//***************lance activity menu1***************
case 1:
Intent defineIntent1 = new Intent(lecontext,Menu1.class);
lecontext.startActivity(defineIntent1);
return true;
//***************lance activity menu2***************
case 2:
Intent defineIntent2 = new Intent(lecontext,Menu2.class);
lecontext.startActivity(defineIntent2);
return true;
//***************lance activity sousmenu11***************
case 11:
Intent defineIntent11 = new Intent(lecontext,Menu11.class);
lecontext.startActivity(defineIntent11);
return true;
//***************lance activity sous menu12***************
case 12:
Intent defineIntent12 = new Intent(lecontext,Menu12.class);
lecontext.startActivity(defineIntent12);
return true;
//***************lance activity sous menu21***************
case 21:
Intent defineIntent21 = new Intent(lecontext,Menu21.class);
lecontext.startActivity(defineIntent21);
return true;
//***************lance activity sous menu22***************
case 22:
Intent defineIntent22 = new Intent(lecontext,Menu22.class);
lecontext.startActivity(defineIntent22);
return true;
}
}
}
Ensuite chacune des classes de votre application deviennent juste des extensions de cette classe MonMenu.java
exemple:
public class Gestionrepas extends MonMenu {
.......
}
Comme ça, vous ne gérez plus votre menu qu’avec cette classe.
Il est temps de mettre à profit les tutoriels d’Android France:
Passez à la vitesse supérieure et investissez quelques dizaines d’euros pour acquérir les connaissances qui vous feront gagner de l’argent avec vos applications rendez-vous sur notre boutique Android-france pour ces formations en vidéo