2016-01-15 96 views
2

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

这是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); 
    } 

会感谢您的帮助。谢谢。

+0

HTTP ://developer.android.com/guide/topics/ui/menus.html – kevz

回答

1

首先inflate菜单初始化得到MenuItemactivity方法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; 
} 
+0

谢谢。 –

+0

这里也得到null:SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView)menu.getItem(2).getActionView(); //返回null searchView.setSearchableInfo( searchManager.getSearchableInfo(getComponentName())); –

+0

@AmitMaddheshiya你为菜单xml中的一个项目添加了'android:actionViewClass =“android.widget.SearchView”' –

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