2010-09-09 85 views
8

的問題是,下面的方法被調用一次當按下菜單按鈕:如何製作動態選項菜單?

public boolean onCreateOptionsMenu(Menu menu) 

我怎樣才能重新在以後的時間菜單,以改變一些選項,禁用一些選項等?

回答

22

覆蓋此 onPrepareOptionsMenu(菜單菜單)

@Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 

     MenuItem item = menu.findItem(R.id.refresh); 

     if (item != null) { 
     item.setVisible (shouldIShowThisItem) 
     } 
} 
+0

這很好。對於這樣做的任何人,在更改onPrepareOptionsMenu中的菜單項之前,您需要執行menu.clear()來清除當前的內容。 – pcm2a 2010-09-09 22:28:45

+0

如果只更改現有項目,則不需要清除菜單。如果您正在重新生成或重新填充您可能需要的全新菜單。 – adamp 2010-09-09 22:36:42

+0

我無法清除並重新創建菜單項目。我嘗試使用menu.getPositon()獲取單個項目,但是當我更改標題時,更改未反映在菜單中。 – pcm2a 2010-09-10 17:29:43

0
invalidateOptionsMenu(); 
如果要更改推使用這個菜單