2014-02-09 240 views
0

我創建了一個菜單,需要根據用戶輸入進行更改,並且菜單確實會更改,但只有一次用戶打開菜單兩次。我的猜測是原始菜單是由public boolean oncreateOptionsMenu(Menu menu)構建的,但它並沒有實際更新,直到使用public boolean onPrepareOptionsMenu(Menu menu)完成了其他菜單按鈕的按下,因此我想知道它們是否是一種告訴菜單在第一次打開時自動更新的方式。我曾嘗試以下,並沒有看到任何結果:如何在菜單按鈕被按下之前更新菜單

public boolean onCreateOptionsMenu(Menu menu){ 
onPrepareOptionsMenu(menu); 
MenuInflator inflater = getMenuInflater(); 
inflater.inflate(R.menu.menu_list, menu); 
return true; 
} 

是他們的任何方式,我可以讓我的onPrepareOptionsMenu功能的變化發生在第一次菜單被打開?如果我把onPrepareOptionsMenu的行動的菜單不修改,由於某些原因,它看到的值是舊的,因此不會做任何更改

+0

你想要準確更新什麼?菜單中有什麼? –

+0

根據用戶與應用程序的交互來填充子菜單。它可以使用onprepareoptions菜單進行更新,但只有在第一次打開菜單後纔會啓用。 – blu

回答

0

我解決了我的問題,通過使用功能closeOptionsMenu()之前的行動,用戶施行。我認爲菜單是在用戶按下菜單按鈕時首次構建的,但似乎菜單是在啓動時首先構建的,菜單按鈕將首先調用該菜單,然後調用onprepareoptionsmenu()。關閉選項菜單最有可能強制onprepareoptionsmenu在第一個菜單按鈕嘗試,但我不完全確定。