Ich habe setHasOptionsMenu(true)
drinnen platziert onCreateView
, kann aber immer noch keine onCreateOptionsMenu
Fragmente aufrufen .
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
return inflater.inflate(R.layout.facesheet, container, false);
}
Unten ist mein onCreateOptionsMenu
Code.
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.layout, menu);
return (super.onCreateOptionsMenu(menu));
}
Die Fehlermeldung, die ich bekomme:
Die Methode
onCreateOptionsMenu(Menu)
vom Typ Fragment muss eine Supertypmethode überschreiben oder implementieren.
Antworten:
Versuche dies,
Und in
onCreate
diese Zeile hinzufügen , die Optionen in Ihrem erscheinen zu lassenToolbar
quelle
setHasOptionsMenu(true);
setHasOptionsMenu(true);
muss aufgerufen werdenonCreate()
, um vollständig zu sein.Sie haben bereits die automatisch generierte Datei res / menu / menu.xml , die action_settings definiert .
In Ihrer MainActivity.java haben Sie die folgenden Methoden:
In der
onCreateView()
Methode Ihres Fragment-Aufrufs:und fügen Sie auch diese 2 Methoden hinzu:
Fügen Sie abschließend die neue Datei res / menu / fragment_menu.xml hinzu , die action_1 und action_2 definiert .
Wenn Ihre App das Fragment anzeigt, enthält das Menü auf diese Weise 3 Einträge:
quelle
Ich habe die Antworten von @Alexander Farber und @Sino Raj ausprobiert. Beide Antworten sind nett, aber ich konnte das onCreateOptionsMenu in meinem Fragment nicht verwenden, bis ich herausfinde, was fehlte:
Fügen Sie setSupportActionBar (Symbolleiste) wie folgt zu meiner Aktivität hinzu:
Ich hoffe, diese Antwort kann für jemanden mit dem gleichen Problem hilfreich sein.
quelle
Anruf
Innerhalb
des Fragments
quelle
quelle