android getMenuInflater() in einem fragment Unterklasse - Methode nicht beheben können
Ich versuche aufblasen, um ein Menü in einer Klasse erbt, die Fragment
Klasse.
Hier ist mein OnCreateOptionsMenu()
Methode -
@Override
public boolean OnCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.forecastfragment, menu) ;
return true;
}
Dies wirft die folgende Fehlermeldung:
Cannot resolve Methode " getMenuInflater()'
Habe ich versucht :
MenuInflater inflater = getActivity().getMenuInflater();
dann aber Android Studio highlights @Override
in rot und Staaten:
Methode nicht überschreibt Methode aus der übergeordneten Klasse
Ich auch versucht, eine getMenuInflater
Methode in der selben Klasse und haben es zurück new MenuInflater(this)
public MenuInflater getMenuInflater() {
return new MenuInflater(this);
}
aber dann die folgende Fehlermeldung geworfen :
Fehler: inkompatible Typen: ForecastFragment kann nicht konvertiert werden
KontextFehler: Methode nicht überschreiben oder implementieren Sie eine Methode aus einem obertyp
Was kann ich tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Unterschrift Ihres
onCreateOptionsMenu
sieht nicht richtig aus. Werfen Sie einen Blick auf die docs hierSchauen Sie diesen code
method does not override from a supertype
Weg zu gehen.overriding
einesuper
Methode.inflate
.Müssen Sie es auf diese Weise:
Verwenden Sie diesen code:
wo forecastID ist die ID des items in dem Menü forcastfragment.xml.
Fügen Sie auch
setHasOptionsMenu(true);
in IhremOnCreateView()
so, dass das fragment wird die Methode aufrufen.Als eine Seite, ist es üblich, das Wort 'Menü' in Ihrem Menü Datei-Namen wie 'forecastfragment_menu.xml'. Es vermeidet Missverständnisse.
In Ihrem fragment-Klasse hinzufügen:
Wo [IDMENU] ist die XML Namen für Ihr Menü.
Als Nächstes müssen Sie fügen Sie innerhalb onCreate oder onCreateView Methode: