何时以及多久为ActionBar调用onPrepareOptionsMenu()方法?

时间:2011-10-05 09:39:25

标签: android menu android-actionbar

Activities很明显 - 在显示菜单之前正在调用该方法。但是ActionBar始终显示时呢?如何触发调用它以动态更新menuItems

2 个答案:

答案 0 :(得分:54)

使用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.

答案 1 :(得分:0)

请注意,如果你的min sdk版本低于Honeycomb(又名Android 3.0又称api 11级),并且你正在使用ActionBarActivity,你可以调用supportInvalidateOptionsMenu() 这是invalidateOptionsMenu()的支持库版本。

如果您的菜单根据onCreate()的传入意图而改变,您可以在onPrepareOptionMenu()中进行更新,如果您在活动生命周期中稍后动态更改菜单,则必须调用invalideOptionsMenu,或者supportInvalidateOptionsMenu取决于你的min和target sdk版本。