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