2016-01-15 127 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; 
}