Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据类变量的更改启用/禁用MenuItem_Android_Android Menu - Fatal编程技术网

Android 如何根据类变量的更改启用/禁用MenuItem

Android 如何根据类变量的更改启用/禁用MenuItem,android,android-menu,Android,Android Menu,我在活动中有一个带有三个菜单项的选项菜单 创造 挑选 删除 如果当前未选择任何项目,我将禁用菜单项进行删除 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); final MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.basic_menu, menu

我在
活动
中有一个带有三个
菜单项的选项菜单

  • 创造
  • 挑选
  • 删除
如果当前未选择任何项目,我将禁用
菜单项
进行删除

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    final MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.basic_menu, menu);
    this.deleteCharMenu = menu.findItem(R.id.basic_menu_deletechar);
    this.deleteCharMenu.setEnabled(this.current != null);
    return true;
}
但是,并非每次打开菜单时都会调用
onCreateOptions菜单
(try and error获得此结果)

因此,我将
MenuItem
存储在一个类变量中,以便能够在
this.current
更改其值时更改其状态


是否有更优雅的方法来确保启用和禁用正确的
MenuItems
?我希望能找到一种我可以使用的倾听器?

让onPrepareMenu过载,它在播放之前就被调用了。

非常感谢。教我将来更仔细地观察活动中的所有方法。