在我的活動的一些方法中,我想檢查菜單的標題或知道它是否被選中。我怎樣才能得到活動的菜單。我需要像this.getMenu()
如何獲取我的活動的選項菜單?
回答
請謹慎對待invalidateOptionsMenu()
。它重新創建整個菜單。這有很多開銷,並會重置像SearchView
這樣的嵌入式組件。我花了很長時間才找到爲什麼我的SearchView
會「隨機」關閉。
我最終捕獲了Dark發佈的菜單,然後根據需要調用onPrepareOptionsMenu(Menu)
。這符合我的要求,沒有令人討厭的副作用。陷阱:確保在創建菜單之前撥打onPrepareOptionsMenu()
進行空檢查。我做了如下:
private Menu mOptionsMenu;
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
mOptionsMenu = menu
...
}
private void updateOptionsMenu() {
if (mOptionsMenu != null) {
onPrepareOptionsMenu(mOptionsMenu);
}
}
這是一個很好的答案,我想幫你達到50. :-) –
真棒的答案,由於某種原因,我無法弄清楚哪個菜單傳遞給onPrepareOptionsMenu( ),因爲我想根據僅在服務啓動時發生的情況等來更改它等。無論如何, –
我會同意,如果使用'invalidateOptionsMenu()',開銷會有點太大和非常明顯。我寧願這個解決方案使用較少的工作量。 –
有幾個回調方法,提供菜單作爲參數。
你可能想在那裏操縱它。
例如:
onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
onCreateOptionsMenu(Menu menu)
onCreatePanelMenu(int featureId, Menu menu)
有幾個,最好你把活動文件中一看,尋找您想要的方式: http://developer.android.com/reference/android/app/Activity.html
在您的解決方案中的值不是最新的 – breceivemail
不知道確切的行爲,但您認爲將參考保存在字段變量中會做到這一點嗎?像:onCreateOptionsMenu(菜單菜單){this.menu =菜單。 。 。 。並訪問它以後要求標題? – Ostkontentitan
至於我能理解你想要的這裏是它可以幫助你:
1.請參閱本教程通過option menu。
2.每次用戶按下菜單按鈕,您都可以通過getTitle()
查看它的標題。
3.或者,如果您想知道用戶未按下菜單按鈕時選中或選擇的最後一個菜單項,則需要在用戶按下時存儲首選項。
,你可以通過將菜單對象到您的Activity類
public class MainActivity extends Activity
{
...
...
private Menu _menu = null;
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
_menu = menu;
return true;
}
private Menu getMenu()
{
//use it like this
return _menu;
}
}
調用invalidateOptionsMenu()更好!你只需要在onPrepareOptionsMenu(菜單菜單)中提供你的更新。 – AntoineP
- 1. 如何從單個菜單選項開始新的活動
- 2. 我如何從選項菜單項啓動上下文菜單?
- 3. 如何獲取wxnotebook中活動選項卡的選項卡號?
- 4. jQuery的活動菜單項
- 5. 的活動菜單項
- 6. 如何獲取PowerBuilder中的活動表單菜單?
- 7. 下拉菜單:如何取消激活1st(選擇)選項?
- 8. 如何操作活動的選項菜單
- 9. 如何訪問片段內活動的選項菜單
- 10. Java的android,如何在活動之間傳遞值。主菜單,選項菜單
- 11. 如何從knockout.js observableArray中獲取選定的菜單選項?
- 12. 獲取所選子菜單項的值
- 13. 獲取選擇的菜單項
- 14. 突出顯示活動菜單選項
- 15. Android:如何從首選項菜單啓動活動?
- 16. 我們如何突出顯示點擊菜單條上的活動菜單項?
- 17. 獲取在HTML中選擇的活動菜單
- 18. 如何使用jQuery獲取選定/活動選項卡的href?
- 19. 如何更改我的菜單以顯示活動菜單
- 20. Android - 我如何從其他活動獲取共享首選項?
- 21. 如何獲得當前選定的菜單或菜單項
- 22. 獲取菜單項的ID
- 23. 如何獲取上下文菜單中的選定項目
- 24. 如何獲取多選項下拉菜單的值?
- 25. 如何獲取所選菜單項目的模型
- 26. Vimscript:如何獲取當前選擇的彈出式菜單項
- 27. 如何獲取android選項菜單的白色背景主題?
- 28. 如何使用jquery獲取帶有選項列表的菜單?
- 29. 如何在wxPython中獲取選定的菜單項?
- 30. Drupal:活動菜單項
「Name」和「Checked」?我不明白。 ID和偏好? – keyser
你在說選項菜單嗎?就像在「public boolean onCreateOptionsMenu(Menu menu)」中創建的一樣? – MikeIsrael
是選項菜單 – breceivemail