2010-09-09 18 views
8

El problema es que el siguiente método se llama una vez cuando se pulsa el botón Menú:¿Cómo hacer un menú de opciones dinámicas?

public boolean onCreateOptionsMenu(Menu menu) 

¿Cómo puedo volver a crear el menú en un momento posterior con el fin de cambiar algunas opciones, desactivar algunas opciones, etc?

Respuesta

22

anular esta onPrepareOptionsMenu (menú Menú)

@Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 

     MenuItem item = menu.findItem(R.id.refresh); 

     if (item != null) { 
     item.setVisible (shouldIShowThisItem) 
     } 
} 
+0

Eso funcionó muy bien. Para cualquier otra persona que haga esto, antes de poder cambiar los elementos del menú en onPrepareOptionsMenu, debe hacer un menú.clear() para borrar el material actual. – pcm2a

+0

No necesita borrar el menú si solo está cambiando los elementos existentes. Si está regenerando o reinflando un menú completamente nuevo, es posible que desee hacerlo. – adamp

+0

No pude cambiar los elementos del menú sin borrar y volver a crearlo. Intenté obtener un elemento individual con menu.getPositon() pero cuando cambié el título, los cambios no se reflejaron en el menú. – pcm2a

0
invalidateOptionsMenu(); 

si usted quiere empujar el menú de cambios en el uso de este.

Cuestiones relacionadas