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

时间:2019-09-21 23:14:11

标签: android

我在主菜单中有一个项目(和图标),这取决于首选项菜单中的一个复选框。 当我选中“复选框”时,图标将出现并已启用,否则图标会消失或显示为灰色且已禁用。 为了使我使用:

@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中选择菜单时才禁用菜单,我希望从“首选项菜单”退出后。 有可能吗?

1 个答案:

答案 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();
}