Android - 以编程方式选择菜单选项

时间:2012-11-28 22:05:57

标签: android

有没有办法以编程方式选择菜单选项?基本上,我希望视图中的按钮执行与按特定菜单选项相同的操作。我正在考虑尝试调用onOptionsItemSelected(MenuItem项),但我不知道该为菜单项添加什么。

3 个答案:

答案 0 :(得分:15)

是的,有办法选择菜单选项!你是正确的调用onOptionsItemSelected(MenuItem项)这里是获取MenuItem的方法:

1)您需要做的第一件事是在Activity中获取Menu类的引用:

private Menu menu;

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
   this.menu = menu;
   return super.onCreateOptionMenu(menu);
}

2)基本上,Menu类包含所有菜单项。所以,一旦你有这个参考,你就像这样模拟菜单点击:

onOptionsItemSelected(menu.findItem(R.id.action_id));

...其中action_id是您要选择的菜单项的ID。您可以在菜单xml中找到此ID。

答案 1 :(得分:13)

为什么不让两个UI事件都调用常用方法?

答案 2 :(得分:1)

我也在寻找这个。虽然调用项目被检查时使用的方法是有意义的,但是不会将菜单项设置为在UI中检查。

所以我最终做的是:

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

MenuItem menuItem = (MenuItem)navigationView.getMenu().findItem(R.id.nav_menu_item_1);
        menuItem.setChecked(true);
        onNavigationItemSelected(menuItem);

以下对我来说不起作用:

  

onOptionsItemSelected(menu.findItem(R.id.action_id));