Android当前窗口检查

时间:2015-06-03 14:11:38

标签: android android-view

如何正确使用?我的意思是,我需要检查当前视图是什么,更改菜单选项取决于当前视图?有什么想法吗?

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        if(getWindow().equals(R.id.additional_content)) {
            getMenuInflater().inflate(R.menu.test2, menu);

        } else {

            getMenuInflater().inflate(R.menu.test1, menu);

        }
        return super.onCreateOptionsMenu(menu);
    }

1 个答案:

答案 0 :(得分:0)

添加了invalidateOptionsMenu(),使我们能够强制再次调用onCreateOptionsMenu()。每次调用菜单时仍会调用onPrepareOptionsMenu()。

您在上面尝试实现的是何时使用invalidateOptionsMenu()的一个很好的示例,但由于向后兼容性,您需要同时执行这两项操作:

if (Build.VERSION.SDK_INT >= 11) {
  invalidateOptionsMenu();
}


@Override
public boolean onCreateOptionsMenu(Menu menu){
    if (Build.VERSION.SDK_INT >= 11) {
        selectMenu(menu);
    }
    return true;
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if (Build.VERSION.SDK_INT < 11) {
        selectMenu(menu);
    }
    return true;
}

private void selectMenu(Menu menu) {
    menu.clear();
    MenuInflater inflater = getMenuInflater();

    if (locked) {
        inflater.inflate(R.menu.changing_menu2, menu);
    }
    else {
        inflater.inflate(R.menu.changing_menu1, menu);
    }
}