Mam działanie, które ma 2 fragmenty. Oba są ListFragments i oba współtworzą MenuItems do Menu. Mam jeden element MenuItem, dla którego ustawiłem atrybut android: showAsAction, aby był wyświetlany jako przycisk na pasku akcji. Co działa dobrze.
Teraz MenuItem jest zależne od stanu. Jest to opcja menu Wstrzymaj / Wznów do wstrzymywania i wznawiania kolejki. Mój problem polega na tym, że nie potrafię wymyślić, jak ustawić jego początkową statuę podczas tworzenia fragmentu.
Jego stan zależy od tego, czy kolejka jest wstrzymana, czy nie. Mam więc AsyncTask, który pobiera kolejkę i ustawia wartość logiczną (wstrzymaną) na podstawie stanu kolejki. Wzywam onPrepareOptionsMenu, aby ustawić tekst dla pozycji menu Pauza na podstawie ostatniego znanego stanu kolejki i działa to świetnie, jeśli zostawię MenuItem w rzeczywistym menu. Dotykasz ikony menu, a onPrepareOptionsMenu jest uruchamiane, a menu jest aktualizowane przed wyświetleniem.
Problem polega na tym, że jeśli umieszczę to samo MenuItem na ActionBar (showAsAction), jak mogę zmusić go do aktualizacji bez konieczności wywoływania onPrepareOptionsMenu? Muszę to zrobić, ponieważ przy pierwszym uruchomieniu aplikacji wysyłam żądanie pobrania kolejki, ale zadanie wraca po skonfigurowaniu i wyświetleniu ActionBar. Utworzyłem procedurę obsługi w moim fragmencie, która jest wywoływana za każdym razem, gdy otrzymuję aktualizację kolejki, ale w jaki sposób mogę zaktualizować tekst mojego elementu MenuItem na ActionBar? Wydaje się, że nie mogę znaleźć sposobu na pobranie aktualnie ustawionego menu, aby nim manipulować, z wyjątkiem onPrepareOptionMenu.
Rob W.