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

时间:2011-08-10 13:03:48

标签: android android-activity menu option

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

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:28)

首先阅读onPrepareOptionsMenu(Menu 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);
    }