2011-10-05 6 views
27

Está claro para Activities - el método se está llamando justo antes de que se muestre el menú. ¿Pero qué pasa con ActionBar cuando es siempre se muestra? ¿Cómo activarlo para que se invoque para actualizar dinámicamente menuItems?¿Cuándo y con qué frecuencia se utiliza el método onPrepareOptionsMenu() para ActionBar?

+0

Puede utilizar el método onPrepareOptionsMenu() para habilitar/deshabilitar elementos de manera eficaz o modificar dinámicamente los contenidos. – Nepster

Respuesta

53

Use invalidateOptionsMenu() para desencadenar el método onPrepareOptionMenu() como lo sugiere el documento.

On Android 3.0 and higher, you must call invalidateOptionsMenu() when you want to update the menu, because the menu is always open. The system will then call onPrepareOptionsMenu() so you can update the menu items.

+0

Si está utilizando ActionBarSherlock puede usar el método activity: supportInvalidateOptionsMenu(); Si se encuentra en un Fragmento, llame a getActivity(). SupportInvalidateOptionsMenu(); en lugar – edrian

0

Nota si su versión min SDK es menos de nido de abeja (también conocido como Android 3.0 aka nivel de API 11), y está utilizando ActionBarActivity puede llamar supportInvalidateOptionsMenu() que es la versión de la biblioteca de apoyo de invalidateOptionsMenu ()

Si su menú cambia en función de un intento entrante en onCreate(), puede hacer las actualizaciones en onPrepareOptionMenu(), si cambia dinámicamente el menú más adelante en el ciclo de vida de las actividades tendrá que llamar a invalideOptionsMenu, o supportInvalidateOptionsMenu dependiendo de sus versiones sdk mínimas y de destino.

Cuestiones relacionadas