No se puede reemplazar onCreateOptionsMenu en ListFragment

He creado una aplicación que admite tanto la versión de teléfono como la versión de tablet, por lo que utilizo la biblioteca android-support-v4.jar.

Mi actividad extiende el ListFragment y traté de reemplazar el onCreateOptionsMenu (menú Menú, inflador MenuInflater), como en el siguiente enlace: http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/ Supportv4 / app / FragmentMenuSupport.html

Anteriormente he llamado setHasOptionsMenu.

Por desgracia, parece que no puedo anular onCreateOptionsMenu ().

Este es el mensaje de error:

El método onCreateOptionsMenu (menú Menú, inflador MenuInflater) de tipo MyFragment debe reemplazar o implementar un método supertipo.

Y lo hice con:

Public class MyFragment extends ListFragment 

Asegúrese de que las importaciones provienen de la biblioteca de compatibilidad y no del propio SDK.

OK, acabo de tener este mismo problema, aunque no fue arreglado por lo que está aquí. Estoy usando la biblioteca ActionBarSherlock y resulta que onCreateOptionsMenu quiere que el Menu sea ​​de android.support.v4.view.Menu y MenuInflater para ser de android.view.MenuInflater , no android.support.v4.view.MenuInflater . No me preguntes por qué. No sé si esto solucionará a todos, así que compartiré cómo lo averigüé:

Haga clic con el botón derecho del ratón en el espacio en blanco donde desea que el método esté en Elcipse> Source> Overide / Implement methods …

A continuación, sólo encontrar desde aquí, y Eclipse importará automáticamente las cosas correctas.

Tuve un problema similar usando el SherlockActionBar en mi actividad. Aquí estaba mi configuración que solucionó el problema:

 import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; public class LoginActivity extends SherlockActivity { ... @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.activity_login, menu); return true; } ... } 

Tenía el mismo problema, pero fue porque usé el método onCreateOptionsMenu equivocado en mi Fragmento!

Boolean onCreateOptionsMenu (Menú) es sólo para Actividades.

 @Override //For Activities public boolean onCreateOptionsMenu(Menu menu) { ... 

Tuvo que moverlo a la clase de actividad que contenía el Fragmento.

Fragmento tiene su propio: void onCreateOptionsMenu (menú de menú, inflador MenuInflater)

 @Override //For Fragments. public void onCreateOptionsMenu (Menu menu, MenuInflater inflater){ ... 

Creación de un menú de opciones: http://developer.android.com/guide/topics/ui/menus.html

¡¡¡Ay!!! ¡Esa fue una buena!

Importé android.view.Menu en MyFragment en lugar de android.support.v4.Menu!

He perdido unas horas en este! Espero que este post por lo menos pueda ayudar a alguien más.

Prueba esto, en realidad IDE se confundió la importación de menú nativo bw nativos y la importación de Sherlock .. así que si lo especificamos claramente entonces se resolverá ..

 @Override public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu, com.actionbarsherlock.view.MenuInflater inflater) { } @Override public boolean onOptionsItemSelected( com.actionbarsherlock.view.MenuItem item) { // TODO Auto-generated method stub } 
 @Override public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { // TODO Auto-generated method stub getSupportMenuInflater().inflate(R.menu.main, menu); return true; } 

Sólo tenía el mismo problema en una actividad en Xamarin. Esperaba que el método tomara Xamarin.ActionbarSherlockBinding.Views.IMenu como un argumento.

Cómo averiguar: -Comentar el método OnCreateOptionsMenu Se empezó a implementar. -En algún método de trabajo comience a escribir OnCreateOptionsMenu como desea llamar. -Elija en la lista de sugerencias. -Colocar un cursor en la llamada OnCreateOptionsMenu. -prima Comando + d para ir al navegador de ensamblaje. Verá la interfaz de implementación. -A continuación, pulsando el puntero del ratón en el tipo de parámetro que se necesita Usted llegará a la interfaz de este tipo de implementación. -Y verá el espacio de nombres en el que está.

Tuve el mismo problema y esto lo hice para usar onCreateOptionsMenu de Fragment. Anule el método onCreate del fragmento y asegúrese de que utiliza el método setHasOptionsMenu con el valor de parámetro "true" para que el sistema sepa que Fragment usará OptionsMenu.

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } 

A continuación, anule onCreateOptionsMenu para inflar el archivo xml de menú (aquí en este ejemplo inflado fragmentmenu.xml

 @Override public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.fragmentmenu, menu); } 

I utilizó com.actionbarsherlock.view.Menu – tal vez ha cambiado desde entonces?

  • Comportamiento de fragmentos: FragmentTransaction :: replace () y operación backStack inversa
  • Fragmentos herencia Android
  • La mejor práctica para manejar el cambio de orientación: Android
  • DialogFragment en Fragmento con rotación de pantalla
  • Cómo mostrar un ListFragment existente en un DialogFragment
  • Cómo poner listview dentro de un fragmento
  • Acceso a la vista de fragmentos de la actividad onCreate
  • La tecla de retroceso para hacer estallar el fragmento muestra los fragmentos superpuestos
  • Ciclo de vida del fragmento Android
  • ¿Los fragmentos con setRetainInstance (true) sobreviven al cierre del proceso?
  • Botón Butterknife Fragment no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.