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
- TabHost muestra contenido una vez (onCreate)
- La aplicación de Android se bloquea después de un tiempo utilizando Fragments y ViewPager
- Android cómo hacer animated setSelection () para listfragment?
- Cambiar el diseño mientras cambia la orientación en tiempo de ejecución en un fragmento sin volver a crear la vista
- Fundamentos de Android Fragments: ¿por qué? ¿Es esto conceptualmente erróneo?
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
- IllegalStateException en FragmentManager
- Agregar un fragmento con el método add () no oculta fragmentos anteriores
- Al mostrar el cuadro de diálogo obtengo "No se puede realizar esta acción después de onSaveInstanceState"
- ¿Cómo conservar la instancia de fragmento de fragmento de reproducción de vídeo después de un cambio de orientación?
- ¿Cómo funciona `onViewStateRestored` de Fragments?
- WebView en un fragmento (android.support.v4)
- El método getFragmentManager () no está definido para el tipo MyActivity
- El fragmento de niño está destruyendo automáticamente
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?
- Ocultar el teclado EditText cuando android: windowTranslucentStatus = true
- Cómo seleccionar una entrada en AlertDialog con una sola opción checkbox android?