的生命週期中只被調用一次,我注意到,onCreateOptionsMenu(菜單菜單)的活動
@Override
public boolean onCreateOptionsMenu(Menu menu) {
只被調用一次。每次菜單顯示時我都需要調用它,因爲我根據應用程序狀態從菜單中添加/刪除項目。
這是可能的嗎?
的生命週期中只被調用一次,我注意到,onCreateOptionsMenu(菜單菜單)的活動
@Override
public boolean onCreateOptionsMenu(Menu menu) {
只被調用一次。每次菜單顯示時我都需要調用它,因爲我根據應用程序狀態從菜單中添加/刪除項目。
這是可能的嗎?
你的意思是你想動態更新菜單項? override onPrepareOptionsMenu()
如果您希望菜單在每次打開時都進行更改,還有其他要考慮的內容取決於Android sdk版本。
這是開發者指南說:
如果要修改基於活動的生命週期期間發生的事件的選項菜單中,您可以在onPrepareOptionsMenu()方法做到這一點。該方法將當前存在的Menu對象傳遞給您,以便您可以對其進行修改,例如添加,刪除或禁用項目。 (片段還提供了一個onPrepareOptionsMenu()回調)。在Android 2.3.x及更低版本中,每次用戶打開選項菜單(按下菜單按鈕)時,系統調用onPrepareOptionsMenu()。
。
在Android 3.0及更高版本上,當菜單項出現在操作欄中時,選項菜單被認爲始終打開。當發生事件並且想要執行菜單更新時,必須調用invalidateOptionsMenu()來請求系統調用onPrepareOptionsMenu()。
+1對於包含關於invalidateOptionsMenu()的部分+1只是在設置布爾值或設置布爾值之後調用getActivity()。invalidateOptionsMenu()。 – whyoz 2013-08-13 00:54:39