У меня есть Activity с 2 фрагментами. Оба являются ListFragments, и оба вносят MenuItems в Menu. У меня есть один MenuItem, для которого я установил атрибут android: showAsAction, чтобы он отображался как кнопка на ActionBar. Что отлично работает.
Теперь MenuItem зависит от состояния. Это пункт меню «Пауза / Возобновить» для приостановки и возобновления очереди. Моя проблема в том, что я не могу понять, как установить начальную статую при создании фрагмента.
Его состояние зависит от того, приостановлена очередь или нет. Итак, у меня есть AsyncTask, который получает очередь и устанавливает логическое значение (приостановлено) в зависимости от состояния очереди. Я вызываю onPrepareOptionsMenu, чтобы установить текст для пункта меню «Пауза» на основе последнего известного состояния очереди, и это отлично работает, если я оставлю MenuItem в фактическом меню. Вы касаетесь значка меню, и onPrepareOptionsMenu запускается, и меню обновляется перед отображением.
Проблема в том, что если я помещу тот же самый MenuItem в ActionBar (showAsAction), как я могу заставить его обновиться без вызова onPrepareOptionsMenu? Мне нужно иметь возможность сделать это, потому что при первом запуске приложения я отправляю запрос на получение очереди, но задача возвращается после того, как ActionBar настроен и отображается. Я создал обработчик в своем фрагменте, который вызывается каждый раз, когда я получаю обновление очереди, но оттуда, как я могу обновить текст для моего MenuItem в ActionBar? Кажется, я не могу найти способ получить текущее установленное меню для управления им, за исключением onPrepareOptionMenu.
Роб В.