OptionsMenu появляется в двойном - PullRequest
1 голос
/ 24 августа 2011

У меня есть Fragment внутри Activity. Эта активность содержит OptionsMenu.

Я использую FragmentTransaction для запуска нового экземпляра того же класса Fragment, когда я выбрал OptionsMenu, он появляется в два раза, потому что он загружается дважды.

Как я могу управлять OptionsMenu между фрагментами

Спасибо.

PS: простите за английский

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

Я найду решение,

Я создаю OptionsMenu только в Activity. Я получаю OptionsItems, выбранные также для действия.

Когда происходит onOptionsItemSelected (), я получаю текущий фрагмент следующим образом:

FragmentManager fg = getSupportFragmentManager();
Fragment frag = fg.findFragmentById(R.id.fragmentMap);

Все мои фрагменты имеют одинаковый идентификатор, но я всегда вижу фрагмент сверху. Тогда я могу позвонить:

frag.onOptionsItemSelected(item);

к фрагменту получения, и мой интерфейс корректно обновляется.

Надеюсь, это поможет.

0 голосов
/ 22 марта 2012

Попробуйте поиграть с setHasOptionsMenu(boolean) в ваших Fragment расширяющихся классах, если для этого параметра установлено значение true, FragmentManager автоматически вызовет onOptionsItemSelected вашего текущего фрагмента, для него установлено значение false, вы можете вручную вызывать эти обратные вызовы самостоятельно в вашемАктивность onOptionsItemSelected.

Работал на меня ...:)

0 голосов
/ 24 августа 2011

Нет такого способа. Вы можете работать с BackPressed и показывать свое собственное меню в виде нового фрагмента. Или управляйте меню опций внутри неактивности FragmentTransaction в зависимости от вашего класса фрагмента и содержимого

...