android 中的菜单 return 为空

Menu return null in android

嗨,这是我的第一个问题。我正在学习 android。我在这里尝试设置菜单图标顶部菜单栏。 我在菜单中添加了项目集。我想管理来自 activity 的图标。 我正在尝试显示隐藏菜单图标。 onCreate 中的菜单 return 为空。 还有其他方法可以动态管理 menu 图标吗? 请帮助。

这是我尝试管理菜单的 activity class 代码片段。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mMenu = (Menu) findViewById(R.id.menuBar);//here Menu return null
    mMenuItem = mMenu.getItem(2);
    mMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    mMenuItem.setVisible(true);
  }

感谢您的帮助。谢谢。

不要把它放在你的 onCreate 上,因为你的菜单是在 onCreateOptionsMenu 中初始化的

public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.your_menu, menu);
    mMenuItem = menu.getItem(2);
    mMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    mMenuItem.setVisible(true);
    return true;
}

首先 inflate 菜单在 activity 方法 onCreateOptionsMenu 中获得 MenuItem 然后尝试像这样获得 menu.getItem :

    @Override
   public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);

    getMenuInflater().inflate(R.menu.menu_activity, menu);
   MenuItem item=menu.getItem(2);
   item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
   item.setVisible(true);
    return true;
}

只需按照以下说明操作即可:

第 1 步:
您需要从 onCreateOptionsMenu(Menu menu)
膨胀菜单项 第 2 步:
您需要一个 MenuInflater 对象,您可以使用 getMenuInflater() API。喜欢:MenuInflater inflater = getMenuInflater();
第 3 步:
给你 menu xml 文件充气,比如:inflater.inflate(R.menu.menu_bottom_nav, 菜单);
第 4 步:
您必须获取特定项目的菜单对象,例如: MenuItem menuItem = menu.getItem(指数)。这里 Index 是数字 取决于哪个菜单项的 你想得到的对象。

完整代码示例:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.menu_bottom_nav, menu);

      MenuItem menuItem  = menu.getItem(0);

     return true;
}