J'ai une activité qui a 2 fragments. Les deux sont des ListFragments et contribuent tous les deux MenuItems au Menu. J'ai un MenuItem pour lequel j'ai défini l'attribut android: showAsAction pour qu'il s'affiche sous forme de bouton sur l'ActionBar. Ce qui fonctionne bien.
Désormais, le MenuItem dépend de l'état. C'est une option de menu Pause / Reprise pour mettre en pause et reprendre une file d'attente. Mon problème est que je ne peux pas comprendre comment définir sa statue initiale lorsque le fragment est créé.
Son état dépend du fait que la file d'attente soit mise en pause ou non. J'ai donc une AsyncTask qui récupère la file d'attente et définit un booléen (mis en pause) en fonction de l'état de la file d'attente. J'appelle onPrepareOptionsMenu pour définir le texte de l'élément de menu Pause en fonction du dernier état connu de la file d'attente et cela fonctionne très bien si je laisse le MenuItem dans le menu réel. Vous appuyez sur l'icône de menu et onPrepareOptionsMenu est déclenché et le menu est mis à jour avant d'être affiché.
Le problème est que si je mets ce même MenuItem sur l'ActionBar (showAsAction), comment puis-je le forcer à se mettre à jour sans avoir à appeler onPrepareOptionsMenu? Je dois pouvoir le faire car au premier lancement de l'application, j'envoie une demande pour obtenir la file d'attente, mais la tâche revient après la configuration et l'affichage de l'ActionBar. J'ai créé un gestionnaire dans mon fragment qui est appelé chaque fois que je reçois une mise à jour de file d'attente, mais à partir de là, comment puis-je mettre à jour le texte de mon MenuItem sur l'ActionBar? Je n'arrive pas à trouver un moyen d'obtenir le menu actuellement défini pour le manipuler, sauf dans onPrepareOptionMenu.
Rob W.