Hus*_*rvi 6 android oncreateoptionsmenu
我想动态更改onCreateOptionsMenu项目.我已经纠正了我的问题,唯一的解决办法是打电话onCreateOptionsMenu,onPostCreate但我不知道怎么称呼它.我已经尝试过我的解决方案无效.它甚至可能......?
Rit*_*une 19
在运行时更改菜单项(来自文档)
系统调用后onCreateOptionsMenu(),它会保留Menu您填充的实例,onCreateOptionsMenu()除非由于某种原因导致菜单失效,否则不会再次调用.但是,您应该onCreateOptionsMenu()仅用于创建初始菜单状态,而不是在活动生命周期中进行更改.
如果要根据活动生命周期中发生的事件修改选项菜单,可以在onPrepareOptionsMenu()方法中执行此操作.此方法会将Menu对象传递给当前存在,以便您可以对其进行修改,例如添加,删除或禁用项目.(片段也提供onPrepareOptionsMenu()回调.)
在Android 2.3.x及更低版本中,系统会在onPrepareOptionsMenu()每次用户打开选项菜单时调用(按"菜单"按钮).
在Android 3.0及更高版本中,当操作栏中显示菜单项时,选项菜单被视为始终打开.当事件发生并且您想要执行菜单更新时,您必须调用invalidateOptionsMenu()以请求系统调用onPrepareOptionsMenu().
invalidateOptionsMenu() 在API 11中添加了,使我们能够强制再次调用onCreateOptionsMenu().
注意:
如果在姜饼和早期版本onCreateOptionsMenu()之后onCreate()和之后调用ICS和Honeycomb,则会onPostCreate()在之后onCreate()但之前调用它onPostCreate().
试试以下:
public static void refreshMenu(Activity activity)
{
activity.invalidateOptionsMenu();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8287 次 |
| 最近记录: |