Ich habe eine TabActivity
mit vier Registerkarten (jedes ist eine eigene Aktivität). Jede Registerkarte definiert ihre eigenen onCreateOptionsMenu
(und in einigen Fällen onPrepareOptionsMenu
). Wenn jede Registerkarte geladen wird, wird eine AsyncTask
gestartet, um die Daten abzurufen, die zum Auffüllen der Liste dieser Registerkarte erforderlich sind.Seltsame Optionen Menü Verhalten in Android TabActivity
Wenn ich sehr schnell zwischen Tabs wechseln (während sie noch geladen werden) und dann die Menü-Taste drücken (während der aktuelle Tab AsyncApiTask
noch läuft), kann ich das falsche Optionsmenü erscheinen lassen.
Zum Beispiel, FooActivity
(Registerkarte 1) hat ein Optionsmenü mit einem "Refresh" -Element, und BarActivity
(Registerkarte 2) hat ein Optionsmenü mit einem "View All" -Element. Wenn ich die App starte (mit aktiver Registerkarte 1), schnell zu Registerkarte 2 wechseln und dann Menü drücken, wird manchmal der Eintrag "Aktualisieren" (statt der erwarteten "Alle anzeigen" -Objekt) angezeigt.
Während dieses seltsame Verhalten manchmal nur auf dem ersten Menü auftritt (und später drücken Sie die richtigen Elemente), manchmal wird es "stecken", und die falschen Elemente erscheinen auf jeder Presse, bis ich Tabs wechseln.
Irgendeine Idee, was könnte los sein? Ich habe davon vorher noch nichts gehört und konnte keine guten Vorschläge finden.
Dies ist eine der scheinbar unendlichen Liste von Gründen, warum ich es verabscheue, Aktivitäten als Inhalt von Tabs zu verwenden. Machen Sie Ihre Tabs zu einfachen Views und lassen Sie Ihren * single * 'onPrepareOptionsMenu()' Delegaten in einer Implementierung basierend auf dem aktiven Tab erscheinen. – CommonsWare
Ah ausgezeichnet, es ist extrem beruhigend zu wissen, dass ich nicht etwas Schreckliches falsch mache, um das zu verursachen. Ich werde diese Lösung in Betracht ziehen. Vielen Dank! – jakeboxer