En algunos métodos de mi actividad, deseo verificar el título del menú o saber si está marcado o no. ¿Cómo puedo obtener el menú de la actividad? Necesito algo como this.getMenu()
¿Cómo puedo obtener el menú de opciones de mi actividad?
Respuesta
Tenga cuidado con invalidateOptionsMenu()
. Recrea el menú completo. Esto tiene una gran cantidad de gastos generales y restablecerá los componentes integrados como el SearchView
. Me tomó bastante tiempo rastrear por qué mi SearchView
se cerraría "al azar".
Terminé capturando el menú publicado por Dark y luego llamé al onPrepareOptionsMenu(Menu)
según sea necesario. Esto cumplió con mi requisito sin efectos secundarios desagradables. Gotcha: asegúrese de hacer una comprobación nula en caso de que llame al onPrepareOptionsMenu()
antes de que se cree el menú. Hice esto como a continuación:
private Menu mOptionsMenu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
mOptionsMenu = menu
...
}
private void updateOptionsMenu() {
if (mOptionsMenu != null) {
onPrepareOptionsMenu(mOptionsMenu);
}
}
Esta es una buena respuesta, y quiero ayudarlo a llegar a 50. :-) –
Respuesta impresionante, por alguna razón no pude averiguar qué menú pasar a onPrepareOptionsMenu () porque quería cambiarlo dependiendo de las condiciones que solo ocurren cuando mi servicio se inicia, etc.De todos modos –
Estoy de acuerdo en que la sobrecarga es demasiado y muy notable si se usa 'invalidateOptionsMenu()'. Preferiría que esta solución use menos carga de trabajo. –
Existen varios métodos de devolución de llamada que proporcionan menú como parámetro.
Es posible que desee manipularlo allí.
Por ejemplo:
onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
onCreateOptionsMenu(Menu menu)
onCreatePanelMenu(int featureId, Menu menu)
Hay varios más, mejor que eche un vistazo en la documentación de la actividad y buscar el método que prefiera: http://developer.android.com/reference/android/app/Activity.html
en los valores de su solución no están actualizados – breceivemail
desconoce el comportamiento exacto, pero ¿cree que sería útil guardar la referencia en una variable de campo? Me gusta: onCreateOptionsMenu (Menú menú) {this.menu = menu. . . . y acceder a ella pidiendo el título más tarde? – Ostkontentitan
Por lo que pude entender lo que queremos aquí es que puede ayudarle:
1. Consulte este tutorial en option menu.
2. Cada vez que el usuario presiona el botón de menú puede verificar su título a través de getTitle()
.
3. O si desea conocer el último elemento del menú marcado o seleccionado cuando el usuario no ha presionado el botón de menú, debe almacenar las preferencias cuando el usuario presiona.
que podría hacerlo pasando el objeto de menú para su clase de actividad
public class MainActivity extends Activity
{
...
...
private Menu _menu = null;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
_menu = menu;
return true;
}
private Menu getMenu()
{
//use it like this
return _menu;
}
}
Llamar invalidateOptionsMenu() es mejor! y solo tiene que proporcionar su actualización en el método onPrepareOptionsMenu (Menú menú). – AntoineP
llamada invalidateOptionsMenu() en lugar de pasar alrededor objeto de menú.
Desafortunadamente, agregado en el nivel 11 de API :( – greg7gkb
- 1. ¿Cómo puedo cambiar el tamaño de los botones de mi menú de opciones?
- 2. ¿Cómo puedo modificar un elemento de menú en el menú de opciones en Android?
- 3. Opciones de piel Menú Android
- 4. ¿Cómo hacer un menú de opciones dinámicas?
- 5. Android - mantenga el menú de opciones abierto
- 6. cómo puedo obtener el valor de un recurso de color en mi actividad
- 7. Cómo puedo obtener el menú de la aplicación en Cocoa
- 8. Código de menú Opciones de reutilización
- 9. Menú de opciones en Ruby
- 10. Nueva actividad - Nuevo menú
- 11. ¿Cómo puedo crear un menú en el menú de inicio de mi programa?
- 12. ¿Cómo puedo verificar cuántas opciones hay en un menú desplegable?
- 13. cómo mantener siempre un menú de opciones en la pantalla
- 14. ¿Cómo obtener el valor de un menú desplegable de opciones múltiples?
- 15. ¿Cómo compruebo programáticamente si el menú de mi actividad se muestra en un momento determinado?
- 16. Cómo oculto el botón de menú para una actividad
- 17. Android: menús de opciones múltiples en una actividad
- 18. ¿Cómo puedo obtener cadenas de opciones sobre acciones usando YQL?
- 19. Menú de opciones de recreación de Android ActionBar
- 20. Implementación del menú de opciones una vez para varias actividades
- 21. Diferencia entre el menú contextual y el menú de opciones en Android
- 22. ¿Cuál es la diferencia entre el menú de opciones y el menú del panel en Android?
- 23. ¿Cómo obtener la clase de actividad principal o el nombre de clase de mi aplicación?
- 24. menú de opciones - eliminación del enfoque del elemento
- 25. ¿Cómo puedo mostrar mi actividad como un diálogo en Android?
- 26. ¿Ancho y alto de un menú de opciones?
- 27. ¿Cómo establecer opciones de un menú desplegable usando Javascript/jQuery?
- 28. ¿Cómo obtener el tamaño visible de una actividad?
- 29. ¿Cómo establecer mi actividad como actividad principal en android?
- 30. ¿Cómo puedo limitar las opciones visibles en un menú desplegable HTML <select>?
"Nombre" y "Comprobado"? No lo entiendo Id y preferencias? – keyser
¿Estás hablando del menú de opciones? Al igual que el creado en "public boolean onCreateOptionsMenu (Menú menu)"? – MikeIsrael
sí menú de opciones – breceivemail