菜单项未显示

时间:2017-04-18 09:36:22

标签: android android-optionsmenu

我在特定事件发生后动态地膨胀菜单项。但是菜单项不可见。

以下是代码:

LocalBroadcastManager.getInstance(context).registerReceiver(new BroadcastReceiver() {
    @Override public void onReceive (Context context, Intent intent){
        appCompatActivity.supportInvalidateOptionsMenu();
        setHasOptionsMenu(true);
        setUpdateText();
        appCompatActivity.invalidateOptionsMenu();
    }
}, new IntentFilter(UPDATE_ACTION));

void setUpdateText() {
    if (mainMenu != null) {
        mainMenu.findItem(R.id.notificationdevicemenu).setVisible(true);
        mainMenu.findItem(R.id.notificationdevicemenu).setEnabled(true);

    }
}

我正在给下面的菜单充气:

  @Override
  public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
      super.onCreateOptionsMenu(menu, inflater);
      mainMenu=menu;
      menu.clear();
      try {
          inflater.inflate(R.menu.main_list_fragment, mainMenu);         
      } catch (Exception e) {
          e.printStackTrace();
      }
  }

任何人都可以告诉我为什么菜单不可见。任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

无效选项菜单将触发onPrepareOptionsMenu(),而不是onCreateOptionsMenu(),它被调用一次(第一次显示选项菜单)。覆盖{{1}}并从那里执行必要的更改。