Android: несколько вариантов меню в одном действии

У меня есть Activity, содержащий ViewFlipper, и хотел бы показать другое меню опций для каждого представления в ViewFlipper. То есть тип меню, отображаемого при нажатии кнопки меню, будет зависеть от типа текущего вида. Тем не менее, onCreateOptionsMenu() вызывается только один раз (при первом показе меню опций), поэтому создание различных меню там невозможно. Как я могу это решить?

Любые предложения оценены.

Ответ 1

Сначала прочитайте onPrepareOptionsMenu (меню меню)

Каждый раз, когда пользователь нажимает кнопку Menu на своем Android-устройстве, находясь внутри одной из ваших действий, вызывается метод onPrepareOptionsMenu. При первом отображении меню (т.е. Только один раз) вызывается метод onCreateOptionsMenu.

В принципе, метод onPrepareOptionsMenu - это то, где вы должны вносить какие-либо изменения, такие как включение/отключение определенных пунктов меню или изменение текста пункта меню в зависимости от обстоятельств.

Итак, сделайте это (не используйте 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);
    }