onPrepareOptionsMenu 和onCreateOptionsMenu 的區別

自己在做一個自定義菜單時,需要解決菜單隻能被創建一次的問題,之後如下解決了:

在android中創建菜單menu時需要重寫Activity的onCreateOptionsMenu(Menumenu)方法,這個方法只在第一次創建的時候調用一次,所以如果之後想對menu進行動態的修改,那麼就不能再對onCreateOptionsMenu做什麼手腳,就要用到onPrepareOptionsMenu(Menumenu)方法了。 


onPrepareOptionsMenu與onCreateOptionsMenu不同的是,他在每次按下menu硬鍵之前會被調用,所以可以在這裏動態的改變menu。 


注意:在onPrepareOptionsMenu(Menumenu)函數中,首先需要調用: 


super.onPrepareOptionsMenu(menu); 

menu.clear(); 

如果沒有clear而直接add的話,那麼菜單中菜單項是會“追加”的,這樣隨着你不停的點menu鍵,菜單項就不停的增加。 

另外,android系統默認的菜單樣式是支持最多3個一行,如果有4項就每行2個有2行...如果想自定義樣式,可以使用xml文件定義樣式。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章