2014-07-21 27 views
1

J'ai récemment mis en œuvre des menus contextuels dans mon projet Android, mais je voudrais modifier par programme le texte pour l'un des éléments de menu, en fonction de l'état du logiciel. Est-ce possible avec un élément de menu contextuel? Je peux déjà le faire avec mes éléments de la barre d'action en utilisant menu.findItem(), mais cette fonction ne semble pas être fournie pour le menu contextuel.Personnaliser le texte dans un élément de menu contextuel

Ceci est mon code pour afficher le menu:

private void showPopupMenu (final View v) 
{ 
    PopupMenu pm = new PopupMenu (net, v); 
    pm.getMenuInflater().inflate (R.menu.popupmenu, pm.getMenu()); 

    pm.setOnMenuItemClickListener (new PopupMenu.OnMenuItemClickListener() 
    { 
      ... 

Je suppose que je pourrais créer un grand ensemble de son XML popupmenu et analyser celui dont j'ai besoin gonflent(), mais ne semble pas vraiment comme un moyen efficace de le faire.

+0

Avez-vous trouvé la solution? –

+0

Un peu, mais pas un qui me rend très heureux. Merci pour le rappel. bien que. – Rich

Répondre

0

En fin de compte, ce que j'ai décidé de le faire était le suivant:

pm.getMenuInflater().inflate (bConfigSelf 
     ? R.menu.SelfConfigMenu // Need a different menu for myself 
     : R.menu.ConfigMenu,  // than for a neighbor 
       pm.getMenu()); 

Un choix de 2 menus différents ne semble pas trop farfelu, mais ce n'est pas vraiment une solution pour le cas général. Mais je vais supposer (sur la base du nombre de réponses) que ce n'est pas un problème commun, et qu'il n'y a vraiment pas de solution pour le moment.

Questions connexes