2016-10-10 107 views
1

根據我決定的任意標準,是否可以更改菜單的內容(您在右上角單擊的三點式事物,這會降低您希望包括的任何設置)。是否可以實時更改菜單?

可以這樣做嗎?現在我不知道該如何,因爲我看到這樣的臺詞:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

,我不知道我是否可以「再膨脹」實時菜單/更改選項/等

+2

你是否閱讀過Android文檔中的[在運行時更改菜單項](https://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu)? –

回答

1

,這是我做的方式:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
     if(condition1){ 
      MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.menu_1, menu); 
     }else{ 
      MenuInflater inflater = getMenuInflater(); 
      inflater.inflate(R.menu.menu_2, menu); 
     } 
     return super.onPrepareOptionsMenu(menu); 
} 
1

是,you can。主要想法是,通過getMenuInflater()得到MenuInflater的實例,然後膨脹你的菜單XML。它不限於您的活動/片段的onCreateOptionsMenu()onPrepareOptionsMenu()

此外,它不必隱藏在三重點菜單或溢出菜單中。當您希望將其隱藏在溢出菜單中或通過showAsAction始終顯示時,有一種配置。

相關問題