0

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

@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 中选择菜单时才启用或禁用菜单,我想在退出首选项菜单后。有可能吗?

4

1 回答 1

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();
}
于 2019-09-22T01:32:50.167 回答