2011-03-21 51 views
2
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
      case R.id.about: 
      Intent i = new Intent(this, impresszum.class); 
      startActivity(i); 

       return true; 
      case R.id.quit: 
       AppUtils.ExitTheApplication(); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
    } 
} 

添加菜單項我有這樣的代碼。我想在運行時添加一些菜單,當我需要它。當我需要時刪除一些菜單。我怎樣才能做到這一點?由謝莉建議的部分,在這種情況下,你可以打電話invalidateOptionsMenu()拿到菜單對象上保持以便的Android在運行時

+0

請參閱[在Android開發人員網站上創建菜單](http://developer.android.com/guide/topics/ui/menus.html#intents),並關注*動態添加菜單意圖*部分。 – Wroclai 2011-03-21 09:21:58

回答

3

菜單項不一定與活動像中onPrepareOptionsMenu()的後續調用「刷新」菜單。

the same Android Developers site

在Android 2.3.x版本和較低時,系統調用onPrepareOptionsMenu() 每個用戶打開選項菜單時間(按下菜單按鈕)。

在Android 3.0及更高版本,選項菜單被認爲總是 時打開菜單項操作欄中的介紹。當一個事件發生 並且要執行菜單更新,您必須調用 invalidateOptionsMenu()來請求系統調用 onPrepareOptionsMenu()