Umieściłem w setHasOptionsMenu(true)
środku onCreateView
, ale nadal nie mogę wywoływać onCreateOptionsMenu
fragmentów.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
return inflater.inflate(R.layout.facesheet, container, false);
}
Poniżej znajduje się mój onCreateOptionsMenu
kod.
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.layout, menu);
return (super.onCreateOptionsMenu(menu));
}
Otrzymuję komunikat o błędzie:
Metoda
onCreateOptionsMenu(Menu)
typu Fragment musi zastąpić lub zaimplementować metodę nadtypu.
Odpowiedzi:
Spróbuj tego,
I
onCreate
dodaj ten wiersz, aby opcje pojawiły się w twoimToolbar
źródło
setHasOptionsMenu(true);
setHasOptionsMenu(true);
musi być wezwany,onCreate()
aby zakończyć.Masz już automatycznie wygenerowany plik res / menu / menu.xml definiujący ustawienia działania .
W pliku MainActivity.java dostępne są następujące metody:
W
onCreateView()
metodzie wywołania fragmentu:a także dodaj te 2 metody:
Na koniec dodaj nowy plik res / menu / fragment_menu.xml definiujący działanie_1 i działanie_2 .
W ten sposób, gdy aplikacja wyświetli Fragment, jego menu będzie zawierać 3 wpisy:
źródło
Próbowałem odpowiedzi na @Alexander Farber i @Sino Raj. Obie odpowiedzi są dobre, ale nie mogłem użyć onCreateOptionsMenu w moim fragmencie, dopóki nie odkryję tego, czego brakowało:
Dodaj setSupportActionBar (pasek narzędzi) do mojej działalności, w następujący sposób:
Mam nadzieję, że ta odpowiedź może być pomocna dla kogoś z tym samym problemem.
źródło
Połączenie
wewnątrz
fragmentu
źródło
źródło