2011-08-10 24 views
11

Tengo un Activity que contiene un ViewFlipper y me gustaría mostrar un menú de opciones diferente para cada vista en ese ViewFlipper. Es decir, el tipo de menú que se muestra cuando se presiona el botón de menú dependerá del tipo de la vista actual. Sin embargo, onCreateOptionsMenu() se llama solo una vez (cuando se muestra el menú de opciones por primera vez), por lo que la creación de los diferentes menús no se puede implementar allí. ¿Cómo podría resolver esto?Android: menús de opciones múltiples en una actividad

Cualquier sugerencia apreciada.

Respuesta

28

por primera vez acerca onPrepareOptionsMenu(Menu menu)

Cada vez que el usuario presiona el Menú en su dispositivo Android, mientras que el interior de una de sus actividades, el método se llama onPrepareOptionsMenu. La primera vez que se muestra el menú (es decir, una sola vez), se llama al método onCreateOptionsMenu.

Básicamente, el método onPrepareOptionsMenu es donde debe realizar cualquier cambio, como habilitar/deshabilitar ciertos elementos de menú, o cambiar el texto del elemento de menú según las circunstancias.

Así que esto (No utilice onCreateOptionsMenu(Menu menu))

//Dynamically create context Menu 
    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     menu.clear(); //Clear view of previous menu 
     MenuInflater inflater = getMenuInflater(); 
     if(condition_true) 
      inflater.inflate(R.menu.menu_one, menu); 
     else 
      inflater.inflate(R.menu.menu_two, menu); 
     return super.onPrepareOptionsMenu(menu); 
    } 
Cuestiones relacionadas