web-dev-qa-db-ja.com

onPrepareOptionsMenu()メソッドがActionBarに対して呼び出されるのはいつ、どのくらいの頻度ですか?

Activitiesについては明らかです-メニューが表示される直前にメソッドが呼び出されています。しかし、ActionBarの場合はどうでしょうか常に表示されますmenuItemsを動的に更新するために呼び出されるようにトリガーするにはどうすればよいですか?

29
Eugene

ドキュメントで提案されているように、invalidateOptionsMenu()を使用してonPrepareOptionMenu()メソッドをトリガーします。

On Android 3.0 and higher, you must call invalidateOptionsMenu() when you want to update the menu, because the menu is always open. The system will then call onPrepareOptionsMenu() so you can update the menu items.

55
PH7

最小SDKバージョンがHoneycomb(別名Android 3.0別名APIレベル11)未満であり、ActionBarActivityを使用している場合は、invalidateOptionsMenu()のサポートライブラリバージョンであるsupportInvalidateOptionsMenu()を呼び出すことができます。 。

OnCreate()への着信インテントに基づいてメニューが変更された場合は、onPrepareOptionMenu()で更新を行うことができます。アクティビティのライフサイクルの後半でメニューを動的に変更する場合は、invalideOptionsMenuまたはsupportInvalidateOptionsMenuを呼び出す必要があります。最小およびターゲットSDKバージョン。

0
guyland123