需要动态改变ActionBar上的菜单项,网上搜了N久,从StackOverFlow上找到了一些回答,最后还是只能静下心仔细研究官方文档,参阅这里的文档:
On Android 3.0 and higher, the options menu is considered to always be open when menu items are presented in the action bar. When an event occurs and you want to perform a menu update, you must callinvalidateOptionsMenu() to request that the system call onPrepareOptionsMenu().
这里的意思写得非常明确:如果菜单项是被放在ActionBar里的,那么菜单则被认为是一直处于打开状态。因此要更新菜单时必须调用invalidateOptionMenu(),来要求系统调用onPrepareOptionMenu()。而我们可以在onPrepareOptionMenu()里面去做需要做的事情,比如更换菜单图片,替换菜单文本,或者设置菜单项是否可见或者有效等等。
本文详细介绍了如何在Android 3.0及以上版本中动态更新位于ActionBar上的菜单项。通过调用invalidateOptionsMenu()方法请求系统重新调用onPrepareOptionsMenu(),从而实现菜单的实时更新,包括更改菜单图标、替换文本、调整可见性和有效性等。

1690

被折叠的 条评论
为什么被折叠?



