Android getMenuInflater () en una subclase de fragmento – no se puede resolver el método

Estoy tratando de inflar un menú en una clase que hereda la clase Fragment . Aquí está mi método OnCreateOptionsMenu()

 @Override public boolean OnCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.forecastfragment, menu) ; return true; } 

Esto plantea el error siguiente:

No se puede resolver el método 'getMenuInflater ()'

Lo intenté :

 MenuInflater inflater = getActivity().getMenuInflater(); 

Pero Android Studio destaca @Override en rojo y indica:

El método no reemplaza el método de su superclase

También traté de crear un método getMenuInflater en la misma clase y tenerlo volver new MenuInflater(this)

 public MenuInflater getMenuInflater() { return new MenuInflater(this); } 

Pero entonces se produce el siguiente error:

Error: tipos incompatibles: ForecastFragment no se puede convertir en Context

Error: método no anula o implementa un método de un supertipo

¿Qué debo hacer?

3 Solutions collect form web for “Android getMenuInflater () en una subclase de fragmento – no se puede resolver el método”

La firma de su onCreateOptionsMenu no parece correcta. Echa un vistazo a los documentos aquí

Echa un vistazo a este código

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true);//Make sure you have this line of code. } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { // TODO Add your menu entries here super.onCreateOptionsMenu(menu, inflater); } 
  • De acuerdo con API no overriding un método super .
  • No está llamando al método correcto inflate .

Debe utilizarlo de esta manera:

 @Override public boolean OnCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.forecastfragment, menu); return true; } 

Utilice este código:

 @Override public boolean OnCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.forecastfragment, menu) ; final MenuItem item = menu.findItem(R.id.forecastID); } 

Donde forecastID es el ID del elemento en el menú forcastfragment.xml. También agrega setHasOptionsMenu(true); En su OnCreateView() para que el fragmento llame al método.

Como un lado, es práctica estándar para incluir la palabra 'menú' en los nombres de archivo de menú como 'forecastfragment_menu.xml'. Evita la confusión.

  • Forzar dirección de texto para LeadingMarginSpan2
  • Integer.parseInt y NumberFormatException en Android
  • Cómo obtener un servicio "enlazado" de Android para sobrevivir a un reinicio de la configuración
  • No HttpMessageConverter adecuado encontrado al intentar ejecutar la solicitud restclient
  • Retrofit 2.0b2: ¿Cómo obtener InputStream de la respuesta?
  • Android-cómo hacer un gradiente de 4 colores de alta calidad?
  • Tamaño de vista previa para el escáner de código de barras de la visión api
  • Acceso a bases de datos en Android
  • Cómo eliminar un módulo importado en Android Studio
  • Método de llamada en la subclase de imageLoader
  • Error en la versión 6.0 de Android 6.0: EACCES (Permiso denegado)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.