para - manual de programacion android pdf
No se puede anular onCreateOptionsMenu en ListFragment (10)
¡¡¡Ay!!! ¡Esa fue una buena!
Importé android.view.Menu en MyFragment en lugar de android.support.v4.Menu!
¡Perdí unas horas en este! Espero que esta publicación pueda al menos ayudar a alguien más.
Creé una aplicación que admite la versión para teléfono y tableta, así que uso la biblioteca android-support-v4.jar.
Mi actividad extiende el ListFragment e intenté anular onCreateOptionsMenu (menú, menú inflateral inflater), como en el siguiente enlace: http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentMenuSupport.html
Anteriormente he llamado setHasOptionsMenu.
Desafortunadamente, parece que no puedo anular onCreateOptionsMenu ().
Este es el mensaje de error:
El método onCreateOptionsMenu (menú del menú, inflater de MenuInflater) de tipo MyFragment debe anular o implementar un método de supertipo.
Y lo hice con:
Public class MyFragment extends ListFragment
Acabo de tener el mismo problema en una actividad en Xamarin. esperaba que el método tomara Xamarin.ActionbarSherlockBinding.Views.IMenu como un argumento.
Cómo averiguarlo: Comente el método OnCreateOptionsMenu que comenzó a implementar. -En algún método de trabajo, comience a escribir OnCreateOptionsMenu como quiere llamarlo. -Elíjalo de la lista de sugerencias. -Coloque un cursor en la llamada OnCreateOptionsMenu. - Presiona Comando + d para ir al navegador de ensamblaje. Verás la interfaz desde la implementación. -A continuación, presionando el puntero del mouse sobre el tipo de parámetro que toma, accederá a la interfaz de este tipo de implementación. -Y verás el espacio de nombres en el que se encuentra.
Asegúrese de que las importaciones sean de la biblioteca de compatibilidad y no del SDK en sí.
Intente esto, en realidad el IDE se confundió con la importación del menú nativo de bw y la importación de Sherlock ... así que si lo especificamos claramente, 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
}
OK, acabo de tener este mismo problema, aunque no estaba resuelto por lo que está aquí. Estoy usando la biblioteca ActionBarSherlock y resulta que onCreateOptionsMenu
quiere que Menu
sea de android.support.v4.view.Menu
y MenuInflater
sea 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 descubrí:
Haga clic con el botón derecho en el espacio en blanco donde desea que esté el método en Elcipse> Fuente> Overide / Implementa métodos ...
Luego, encuéntrelo desde aquí y Eclipse importará automáticamente las cosas correctas.
Tenía el mismo problema, pero fue porque usé el método onCreateOptionsMenu incorrecto en mi Fragmento!
boolean onCreateOptionsMenu (Menú) es solo para Actividades.
@Override //For Activities
public boolean onCreateOptionsMenu(Menu menu) {
...
Tuvo que moverlo a la clase de actividad que contiene el Fragmento.
Los fragmentos tienen su propio: void onCreateOptionsMenu (menú, menú inflateral inflater)
@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
Tuve el mismo problema y esto lo que hice para usar onCreateOptionsMenu of Fragment. Reemplace el método onCreate del Fragmento y asegúrese de usar el método setHasOptionsMenu con el valor del parámetro "verdadero" para que el sistema sepa que el Fragmento usará el Menú de Opciones.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
Luego anule onCreateOptionsMenu para inflar su archivo xml del menú (aquí, en este ejemplo, infle fragmentmenu.xml
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fragmentmenu, menu);
}
Tuve un problema similar al usar SherlockActionBar en mi actividad. Aquí fue 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;
}
...
}
usé yo usé com.actionbarsherlock.view.Menu - ¿tal vez ha cambiado desde?
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
// TODO Auto-generated method stub
getSupportMenuInflater().inflate(R.menu.main, menu);
return true;
}