comment nous pouvons ajouter un élément de menu dynamiquement
hi frnds suis entrain de créer une application qui est un onglet de l'application.
dans ma Maison qui s'étend sherlockFragmentActivity, je suis gonfler menu.xml et contient le code pour sur optionMenuitem cliquez sur l'auditeur. Le Fragmentactivity contient tabhost et sur chaque onglet, il charge des fragments.
c'est mon menu.xml
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="always"
android:icon="@drawable/setting_selector"
android:title=""
>
<menu >
<item
android:id="@+id/Profile"
android:showAsAction="ifRoom"
android:title="Profile"/>
<item
android:id="@+id/chngDoctor"
android:showAsAction="ifRoom"
android:title="Change doctor"
android:visible="false"/>
<item
android:id="@+id/changePword"
android:showAsAction="ifRoom"
android:title="Change password"/>
<item
android:id="@+id/logout"
android:showAsAction="ifRoom"
android:title="Logout"/>
</menu>
</item>
et c'est mon onCreateOptionMenu et onOptionItemSelected méthodes dans la classe à la Maison
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//TODO Auto-generated method stub
getSupportMenuInflater().inflate(R.menu.main, menu);
SubMenu subMenu = (SubMenu) menu.getItem(0).getSubMenu();
if(userType.equals("admin"))
subMenu.getItem(1).setVisible(true);
else
subMenu.getItem(1).setVisible(false);
return true;
}
et c'est mon onOptionItemSelected méthode
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case R.id.Profile:
break;
case R.id.changePword :
break;
case R.id.chngDoctor :
break;
case R.id.logout:
Home.this.finish();
break;
}
return true;
}
j'ai besoin d'ajouter des menus en fonction de l'onglet modifier. c'est sur l'onglet modification de la charge différents fragments et quand fragment de changements dont j'ai besoin pour ajouter de nouveaux éléments dans le menu. mon ListFrag qui s'étend SherlockFragment et il se charge quand je clique sur le 3e onglet. lors de ce fragment de charge-je besoin pour ajouter 1 élément de menu pour le menu
source d'informationauteur Vikky | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Essayez de la manière suivante.
Cela peut vous aider.
Dans le
menu.xml
vous devez ajouter tous les éléments de menu. Ensuite, vous pouvez masquer des éléments que vous ne voulez pas voir dans le chargement initial.Ajouter
setHasOptionsMenu(true)
dans le onCreate() la méthode à invoquer les éléments de menu dans votre Fragment de classe.Vous n'avez pas besoin de remplacer
onCreateOptionsMenu
dans votre Fragment de classe à nouveau. Les éléments de Menu peut être modifié (Ajout/remoev) en remplaçantonPrepareOptionsMenu
méthode disponible dans le Fragment.voici un exemple...il pourrait vous aider...
utilisation
onPrepareOptionsMenu
méthode et effacer toutes les menu de la première utilisation depuis ajouter le menu.
Aussi reportez-vous ici.. vérifier son
onPrepareOptionsMenu
méthodebasé sur Gunaseelan réponse