ListFragment onPrepareOptionsMenu wurde zuvor onCreate aufgerufen. Warum und wie zu beheben / umgehen?

8

Okay, also habe ich FavoriteList, die GalleryList erweitert, die ListFragment erweitert:

%Vor%

Hier ist das Problem: onPrepareOptionsMenu heißt vor onCreate (wo ich listAdapter initialisiere) wenn ich dieses Fragment lade, und wird nicht vor dem Optionsmenü erneut aufgerufen zum ersten Mal gezeigt!

Die Fragment-Dokumentation ist einfach falsch, wenn onPrepareOptionsMenu behauptet wird kurz bevor das Menü angezeigt wird, jedes Mal wenn angezeigt wird. "

ps. Ich verwende die Android-Support-Bibliothek (v4). Irgendwelche Ideen?

    
Michael Plotke 11.09.2012, 17:21
quelle

2 Antworten

2

Also, so albern das ist, hier ist ein funktionierender Workaround:

%Vor%

Grundsätzlich habe ich das Optionsmenü während des ersten Durchlaufs von onPrepareOptionsMenu genommen und es dann wieder aufgerufen, nachdem listAdapter initialisiert wurde.

edit: offenbar ohne zu prüfen, ob optionsMenu null ist, wird dies auf bestimmten Telefonen brechen. Ich hätte es realisieren sollen.

    
Michael Plotke 11.09.2012, 17:39
quelle
2

Versuchen Sie, invalidateOptionsMenu() auf Ihrem onCreate() aufzurufen. Stellen Sie sicher, dass Ihr Listenadapter null auf onPrepareOptionsMenu() ist.

    
Chris A 11.09.2012 17:28
quelle