J'ai parcouru les questions sur le débordement de la pile et je ne trouve pas la solution.
@Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.menu_settings: Log.v("Log:","edit_item pressed"); return true; } }
4 Réponses :
Ce n'est pas suffisant pour changer la variable code> isdown code>. Vous devez appeler la méthode Après avoir modifié la valeur code> isdown code> sur false, vous devez appeler Essayez ce code pour la création des éléments de menu invisibles: p> SetVisible () CODE> à chaque fois que vous souhaitez modifier la visibilité. Cette méthode fait plus que de définir une valeur booléenne, il suffit de changer une valeur booléenne.
invalidateOptionsMenu () qui relancera le menu en appelant
onprepareOptionsMenu () code> à nouveau. p>
...
isdown = false;
invalidateOptionsMenu();
...
Oui, je sais que, mais comme je lisais l'ONPREPareOptionsMenu (menu Menu) {est censé tirer à chaque fois qu'un élément de menu est cliqué et cela fonctionnerait. Je ne peux pas définir la visibilité à moins que je n'ai que menu Menu dans la fonction, c'est là que j'ai un problème
Je vois. Publier édité pour couvrir ceci.
Ahhh c'est ce que je cherchais. Je vais essayer si cela fonctionne mal accepte, merci.
Où puis-je ajouter la méthode InvalidateOptionSMenu ()?
N'importe où dans l'activité après avoir changé la valeur de ISDOD sur FALSE
NVM le trouva. Je devais ajouter une suppression de la nouvelle API pour que je pose l'invalidation dans sa propre fonction, il suffit d'augmenter. Merci
InvalidateOptionsMenu (); Code> Nécessite l'API 11. Aussi à masquer / afficher un élément, je ne pense pas que sa bonne option pour invalider le menu d'options entières!
Essayez ceci,
menu.findItem(R.id.menu_settings).setVisible(isdown); menu.findItem(R.id.menu_save).setVisible(isdown);
J'ai entendu dire que l'onprepareoptionsmenu était censé être mieux, savez-vous quelle est la différence?
ok donc maintenant je peux mettre mon menu.Find article dans n'importe quelle fonction de ma classe?
Oui, trouvez l'élément de menu dans n'importe quel endroit de votre classe et de votre cache-cache ..!, Vérifiez-vous cela?
Je vais essayer si ça marche sera up vote merci beaucoup me donner quelques heures
Tous deux travaillaient mais l'autre réponse en invalidant le menu est plus efficace merci.
Essayez ceci dans votre fragmentationActivité
public boolean onPreparePanel(int featureId, View view, Menu menu) { if(isLeftMenuOpened()) return false; return super.onPreparePanel(featureId, view, menu); }
J'ai un menu avec deux éléments, d'abord: Enregistrer l'élément, deuxième: Modifier l'élément. Je voulais quand je suis entré pour édition, au début "Save Item" avait été masqué et lorsque je clique sur "Modifier l'élément", "Enregistrer l'élément" a été affiché.
SO: P>
OncreateOptionsMenu (menu Menu, MenuLflaater Inflater) Code> Li>
- Définir la visibilité à
ishaden () code> li>
- Puis tout lieu où je voulais, définissez la visibilité sur
ISvissible () Code> Li>
ol> Région publique: p>
saveItem.setVisible(isVisible());