問題小結(5)-menu菜單的刷新

最近在做的一個項目,要求menu圖標要可以動態替換,最後查瞭一下資料,最終搞定:

首先:onCreateOptionsMenu函數隻會執行一次,如果在這裡面創建menu的話,隻能顯示初始化的menu內容,沒法動態的改變其值。在測試中發現onPrepareOptionsMenu在每次的點擊menu鍵的時候都會執行,所以解決問題的契機出現瞭。onPrepareOptionsMenu的參數也是menu,所以我們嘗試在這裡進行菜單項的添加(先把onCreateOptionsMenu裡的菜單創建屏蔽),來驗證是否可以達到我們的預期。結果是可以的。

要註意的是:在onPrepareOptionsMenu裡創建menu要先把menu.clear();,不然會越加越多。

 

作者:agods

發佈留言