Android:一个活动中的多个选项菜单

ond*_*fka 11 android menu option android-activity

我有一个Activity包含a ViewFlipper并希望为每个视图显示不同的选项菜单ViewFlipper.也就是说,按下菜单按钮时显示的菜单类型取决于当前视图的类型.但是,onCreateOptionsMenu()只调用一次(第一次显示选项菜单时),因此无法在那里实现创建不同的菜单.我该怎么解决这个问题?

任何建议赞赏.

Pan*_*mar 28

首先阅读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);
    }
Run Code Online (Sandbox Code Playgroud)