Ich habe eine Aktivität mit 2 Fragmenten. Beide sind ListFragments und beide tragen MenuItems zum Menü bei. Ich habe ein Menüelement, für das ich das Attribut android festgelegt habe: showAsAction, damit es als Schaltfläche in der Aktionsleiste angezeigt wird. Welches funktioniert gut.
Jetzt ist das MenuItem zustandsabhängig. Dies ist eine Menüoption zum Anhalten / Fortsetzen zum Anhalten und Fortsetzen einer Warteschlange. Mein Problem ist, dass ich nicht herausfinden kann, wie ich die ursprüngliche Statue beim Erstellen des Fragments festlegen soll.
Der Status hängt davon ab, ob die Warteschlange angehalten ist oder nicht. Ich habe also eine AsyncTask, die die Warteschlange abruft und einen Booleschen Wert (pausiert) basierend auf dem Status der Warteschlange festlegt. Ich rufe onPrepareOptionsMenu auf, um den Text für das Menüelement Pause basierend auf dem letzten bekannten Status der Warteschlange festzulegen. Dies funktioniert hervorragend, wenn ich das Menüelement im eigentlichen Menü belasse. Sie tippen auf das Menüsymbol und onPrepareOptionsMenu wird ausgelöst und das Menü wird aktualisiert, bevor es angezeigt wird.
Das Problem ist, wenn ich dasselbe MenuItem in die ActionBar (showAsAction) lege, wie kann ich die Aktualisierung erzwingen, ohne onPrepareOptionsMenu aufrufen zu müssen? Ich muss dazu in der Lage sein, da ich beim ersten Start der App eine Anfrage zum Abrufen der Warteschlange sende, die Aufgabe jedoch zurückkehrt, nachdem die ActionBar eingerichtet und angezeigt wurde. Ich habe in meinem Fragment einen Handler erstellt, der jedes Mal aufgerufen wird, wenn ich ein Warteschlangenupdate erhalte. Wie kann ich von dort aus den Text für mein MenuItem in der ActionBar aktualisieren? Ich kann anscheinend keinen Weg finden, das aktuell eingestellte Menü zu manipulieren, außer in onPrepareOptionMenu.
Rob W.