Android 退出首选项后刷新选项菜单

Android 退出首选项后刷新选项菜单,android,Android,我在主菜单中有一个项目(和图标),它依赖于首选项菜单中的一个复选框。 当我选中复选框时,图标会出现并启用,否则图标会消失或变灰并禁用。 为了使我使用: @Override public boolean onPrepareOptionsMenu (Menu menu) { boolean isactive = _appSettings.IsSendReportActive(); menu.findItem(R.id.action_send).setEna

我在主菜单中有一个项目(和图标),它依赖于首选项菜单中的一个复选框。 当我选中复选框时,图标会出现并启用,否则图标会消失或变灰并禁用。 为了使我使用:

@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中选择菜单时,我希望在退出首选项菜单后。
是否可能?

首次创建活动时,您可以在
onCreateOptions菜单
功能中设置菜单选项

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;
}
protected void onResume() {
  super.onResume();
  invalidateOptionsMenu();
}
返回活动时,可以调用
onResume()
中的
invalidateOptionsMenu()
函数重新绘制菜单。它调用创建选项菜单上的
功能

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;
}
protected void onResume() {
  super.onResume();
  invalidateOptionsMenu();
}