2014-03-13 61 views
2

我是新手使用invalidateOptionsMenu()的時候,我經歷了導航抽屜中的示例代碼到Android,我發現他所謂的方法invalidateOptionsMenu(),所以我就搜索其功能,但無法找到所以任何人都可以給我一個答案,告訴我它的功能,並且我們會使用它。什麼是Android

回答

1

這將觸發另一個調用onCreateOptionsMenu在那裏你可以決定要顯示的新菜單。這基本上是用新的菜單替換當前菜單的正確方法。

1

當創建活動則onCreateOptionsMenu方法被調用。在裏面你可以從menu.xml注入菜單,或者手動建立它。但是如果你想在活動期間改變這個菜單,你必須調用invalidateOptionsMenu();

如:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    if (something) { 
    // buildOneMenu 
    } else { 
    // buildAnotherMenu 
    } 
} 

... 

something = true; 
invalidateOptionsMenu(); 
7

此功能的android告訴它應該重新繪製菜單。默認情況下,一旦菜單被創建,它將不會被重新繪製每一幀(因爲這將無用,重新繪製相同的菜單一遍又一遍)。

當你在選項菜單中更改的東西(而添加的元素,刪除元素或更改文本)你應該調用這個函數。通過這種方式,android會知道是時候重新繪製菜單,並且您的更改將顯示。

希望這回答您的問題