W mojej aplikacji mam jedną Aktywność zawierającą dwa Fragmenty. Jeśli dodaję MenuItem do Menu, czy mogę go odzyskać w moich fragmentach? Jaki jest związek między Option Menu w Activity i Option Menu w jego fragmentach potomnych?Android: Menu opcji między działaniem a fragmentami
Odpowiedz
Musisz zadzwonić pod numer setHasOptionsMenu();
z true
jako argumentem przekazanym do niego, wtedy możesz zastąpić menu opcji UtwórzCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Enable the option menu for the Fragment
setHasOptionsMenu(true);
}
Jeśli chcesz mieć inny optionsMenu dla każdego fragmentu można zdefiniować dwa różne menu Plik xml i napełnienie ich w onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment1_menu, menu);
}
Pokazuje 2 menu .. 1 z mojej aktywności i 1 w fragmencie. Czy wiesz, jak ukryć menu działań. które mam we wszystkich fragmentach. – djk
Myślę, że nie powinieneś nadużywać menu w swojej Aktywności, aby tego uniknąć. –
spróbuj ustawić menu.removeItem (R. id.parentMenuItem); w części, aby uniknąć powtórzenia –
Nie można złapać wydarzenie menu aktywności w sub fragmenty . Zamiast tego możesz mieć swoje fragmenty zaimplementować coś w rodzaju MenuItem.OnMenuItemClickListener
. W metodzie onOptionsItemSelected(MenuItem item)
w swojej działalności wystarczy zadzwonić pod numer YourFragment
. onMenuItemClick()
.
I okazało się, że mogę dodać MenuItem
w Działaniu onCreateOptionsMenu()
i następnie pobrać je w Fragment
s przez ich ID, tak:
aktywny:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
itemId= 0;
menu.add(0, itemId, 0, "item");
return super.onCreateOptionsMenu(menu);
}
Fragment:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
itemId= 0
MenuItem menuItem= menu.findItem(itemId);
}
Nie, nadal nie działa ... –
- 1. Różnica między menu kontekstowym a menu opcji w Androidzie
- 2. Komunikacja między fragmentem a działaniem - najlepsze praktyki
- 3. Menu opcji karnacji Android
- 4. Jaka jest różnica między menu opcji a menu panelu w systemie Android?
- 5. Jak nawiązać połączenie między działaniem a fragmentem?
- 6. animowane przejście między działaniem a innym
- 7. Android ActionBar Odtwórz menu opcji
- 8. Android - pozostaw otwarte menu opcji
- 9. Udostępnianie kodu między fragmentami
- 10. Menu opcji Animacja
- 11. Jak przekazywać wartości między Fragmentami
- 12. Ustawianie opisu zawartości menu opcji android Talkback
- 13. Android - NestedFragments uczestniczy w zapełnianiu menu opcji
- 14. Jaka jest zasadnicza różnica między fragmentem a działaniem? Który kod można zapisać fragmentem?
- 15. Jak komunikować się między usługą przesyłania wiadomości Firebase a działaniem? Android
- 16. Własna animacja klapki między fragmentami pakietu pomocy technicznej Android
- 17. Komunikacja między fragmentami/okienkami w Androidzie
- 18. przeciągnij i upuść między dwoma fragmentami?
- 19. Różnica między działaniem @ actionMapping, @ requestmapping, @ Rendermapping
- 20. Najlepszy sposób na przełączanie między dwoma fragmentami
- 21. Jaka jest różnica między @android a android:
- 22. Jak wyświetlić menu opcji w systemie Android 4.2
- 23. Szerokość i wysokość menu opcji?
- 24. Ponowne użycie opcji Kod menu
- 25. Dziwne zachowanie menu opcji w Androidzie TabActivity
- 26. Ikona menu opcji Androida nie wyświetla się
- 27. Menu opcji nie pokaże pierwszej opcji po kliknięciu (Tkinter).
- 28. Czy lepiej używać Activity.onAttachFragment lub Fragment.onAttach do komunikacji między działaniem a zagnieżdżonym fragmentem?
- 29. Jak zmienić element menu w menu opcji na urządzeniu z systemem Android?
- 30. Wybór opcji Wybierz Otwiera menu rozwijane
Jaki jest powód, dla którego chcesz pobrać element menu w fragmentach? Zwykle po prostu chcesz dodać do menu fragmenty i to tylko kwestia przesłonięcia OnCreateOptionsMenu w fragmentach i wywołanie setHasOptionsMenu (true) w ich metodzie onCreate –