我在主菜单中有一个项目(和图标),这取决于首选项菜单中的一个复选框。 当我选中“复选框”时,图标将出现并已启用,否则图标会消失或显示为灰色且已禁用。 为了使我使用:
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
boolean isactive = _appSettings.IsSendReportActive();
menu.findItem(R.id.action_send).setEnabled(isactive);
menu.findItem(R.id.action_send).setVisible(isactive);
return true;
}
但是启用菜单或仅当我在MainActivity中选择菜单时才禁用菜单,我希望从“首选项菜单”退出后。 有可能吗?
答案 0 :(得分:1)
首次创建活动时,可以在onCreateOptionsMenu
功能中设置菜单选项。
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
boolean isactive = _appSettings.IsSendReportActive();
menu.findItem(R.id.action_send).setEnabled(isactive);
menu.findItem(R.id.action_send).setVisible(isactive);
return true;
}
返回活动后,可以调用invalidateOptionsMenu()
中的onResume()
函数来重画菜单。它会调用onCreateOptionsMenu
函数。
protected void onResume() {
super.onResume();
invalidateOptionsMenu();
}