J'ai un TabActivity
avec quatre onglets (chacun est sa propre activité). Chaque onglet définit son propre onCreateOptionsMenu
(et dans certains cas, onPrepareOptionsMenu
). Lorsque chaque onglet est chargé, un AsyncTask
est lancé pour récupérer les données nécessaires pour remplir la liste de cet onglet. Si je passe très rapidement d'un onglet à l'autre (pendant le chargement) et que j'appuie sur le bouton de menu (alors que le AsyncApiTask
de l'onglet actuel est toujours actif), le mauvais menu d'options s'affiche. Par exemple, FooActivity
(onglet 1) a un menu d'options avec un élément «Actualiser» et BarActivity
(onglet 2) a un menu d'options avec un élément «Afficher tout». Si je démarre l'application (avec l'onglet 1 actif), passez rapidement à l'onglet 2, puis cliquez sur le menu, l'élément "Actualiser" (plutôt que l'élément "Tout voir" attendu) sera parfois affiché. De plus, alors que ce comportement bizarre se produit parfois juste sur le premier menu, appuyez sur (et les pressions suivantes montrent les bons éléments), parfois il est "bloqué", et les mauvais éléments apparaissent sur chaque presse jusqu'à ce que je change d'onglet.Comportement de menu étrange options dans Android TabActivity
Toute idée de ce qui pourrait se passer? Je n'ai jamais entendu parler de cela avant, et je n'ai pas trouvé de bonnes suggestions.
Ceci est l'une des liste apparemment infinie de raisons pour lesquelles je déteste utiliser des activités comme le contenu des onglets. Faites de vos onglets des vues simples, et ayez votre * single * 'onPrepareOptionsMenu()' délégué à une implémentation basée sur l'onglet actif. – CommonsWare
Ah excellent, il est extrêmement réconfortant de savoir que je ne fais pas quelque chose d'horriblement mal à cause de ça. Je vais considérer cette solution. Merci! – jakeboxer