菜单在android中返回null

时间:2016-01-15 06:38:21

标签: android android-menu

嗨,这是我的第一个问题。我正在学习android。在这里,我正在尝试设置菜单图标顶部菜单栏。 我在菜单中添加了一组项目。我想管理活动中的图标。 我正在尝试显示隐藏菜单图标。 菜单在onCreate中返回null。 有没有其他方法可以动态管理menu图标? 请帮忙。

这是我正在尝试管理菜单的activity类代码段。

@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);
  }

非常感谢您的帮助。感谢。

3 个答案:

答案 0 :(得分:1)

不要把它放在你的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;
}

答案 1 :(得分:1)

MenuItem方法activity中获取onCreateOptionsMenu的第一个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}}

答案 2 :(得分:0)

只需遵循以下说明:

步骤1:
您需要从 onCreateOptionsMenu(菜单菜单)
中添加菜单项 第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;
}