ListFragment onPrepareOptionsMenu wywołany przed onCreate. Dlaczego i jak naprawić / obejść?

Dobra, więc mam listę ulubionych, która rozszerza listę galerii, która rozszerza ListFragment:

public static class FavoritesList extends GalleryList {

    public static FavoritesList newInstance(int page) {
        FavoritesList list = new FavoritesList();

        Bundle args = new Bundle();
        args.putInt("page", page);
        list.setArguments(args);

        return list;
    }

    @Override
    public void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);

        Cursor cursor = dbHelper.getGalleries(fav, preferences.getString("sort"+fav, "date desc"));
        listAdapter = new GalleryListAdapter(activity, cursor);
        setListAdapter(listAdapter);
    }

    ...

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        menu.add(Menu.NONE, 0, 8, "Remove All");
    }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        super.onPrepareOptionsMenu(menu);

        //listAdapter is null the first time this is called...

        if (listAdapter != null && listlistAdapter.getCount() == 0) {
            menu.findItem(R.id.filter).setEnabled(false);
            menu.findItem(0).setEnabled(false);
        }
        else {
            menu.findItem(R.id.filter).setEnabled(true);
            menu.findItem(0).setEnabled(true);
        }
    }
}

Oto problem: wywoływane jest menu onPrepareOptionsMenuprzed onCreate (gdzie inicjalizuję listAdapter) podczas ładowania tego fragmentu i tonie jest ponownie wywołany, zanim menu opcji zostanie wyświetlone po raz pierwszy!

TheDokumentacja fragmentów jest po prostu błędne, gdy twierdzi, że nazywa się on PrepareOptionsMenu ”tuż przed wyświetlane jest menu,każdego razu jest pokazane."

p.s. Korzystam z Android Support Library (v4). Jakieś pomysły?

questionAnswers(2)

yourAnswerToTheQuestion