很明显对于
Activities
- 这个方法在菜单显示之前被调用。但是当ActionBar
总是显示时呢?如何触发它来动态更新menuItems
?Activities
- 这个方法在菜单显示之前被调用。但是当ActionBar
总是显示时呢?如何触发它来动态更新menuItems
?根据文档的建议,使用 invalidateOptionsMenu() 方法来触发 onPrepareOptionMenu() 方法。
在 Android 3.0 及更高版本中,当您想要更新菜单时,必须调用 invalidateOptionsMenu() 方法,因为菜单始终处于打开状态。系统会随后调用 onPrepareOptionsMenu() 方法以便您可以更新菜单项。
请注意,如果您的min sdk版本低于Honeycomb(也称为Android 3.0,即api级别11),并且您正在使用ActionBarActivity,则可以调用supportInvalidateOptionsMenu(),这是invalidateOptionsMenu()的支持库版本。
如果您的菜单根据传入的意图在onCreate()中更改,则可以在onPrepareOptionMenu()中进行更新,如果您在活动生命周期后动态更改菜单,则必须调用invalideOptionsMenu或supportInvalidateOptionsMenu,具体取决于您的min和目标sdk版本。