Android 在onPostCreate中调用OnCreateOptions菜单
我想动态更改创建选项菜单中的Android 在onPostCreate中调用OnCreateOptions菜单,android,oncreateoptionsmenu,Android,Oncreateoptionsmenu,我想动态更改创建选项菜单中的项。我已经纠正了我的问题,唯一的解决办法是在onPostCreate中调用oncreateoptions菜单,但我不知道如何调用它。 我已经尝试了我的解决方案。有可能吗 用这个 失效操作菜单() 在运行时更改菜单项(来自文档) 在系统调用onCreateOptions菜单()后,它将保留您填充的菜单的一个实例,并且不会再次调用onCreateOptions菜单(),除非该菜单因某种原因无效。但是,您应该使用onCreateOptions菜单()仅创建初始菜单状态,而不
项。我已经纠正了我的问题,唯一的解决办法是在onPostCreate
中调用oncreateoptions菜单
,但我不知道如何调用它。
我已经尝试了我的解决方案。有可能吗 用这个
失效操作菜单() 在运行时更改菜单项(来自文档)
在系统调用onCreateOptions菜单()
后,它将保留您填充的菜单的一个实例,并且不会再次调用onCreateOptions菜单()
,除非该菜单因某种原因无效。但是,您应该使用onCreateOptions菜单()
仅创建初始菜单状态,而不在活动生命周期中进行更改
如果要根据活动生命周期中发生的事件修改选项菜单,可以在onPrepareOptionsMenu()
方法中进行修改。此方法按菜单对象当前存在的状态传递给您,以便您可以对其进行修改,例如添加、删除或禁用项。(片段还提供一个onPrepareOptions菜单()
回调。)
在Android 2.3.x及更低版本上,每次用户打开选项菜单(按下菜单按钮)时,系统都会调用onPrepareOptions菜单()
在Android 3.0及更高版本上,当操作栏中显示菜单项时,选项菜单被认为始终处于打开状态。当事件发生并且您想要执行菜单更新时,必须调用invalidateOptions菜单()
,请求系统调用onPrepareOptions菜单()
API 11中添加了invalidateOptions菜单()
,使我们能够强制再次调用OnCreateOptions菜单()
注意:
对于ICS和蜂窝,在onCreate()
和onPostCreate()
之后调用onCreate()
,而在姜饼和早期版本中,在onCreate()
之后调用onPostCreate()
请尝试以下操作:
public static void refreshMenu(Activity activity)
{
activity.invalidateOptionsMenu();
}
你能给我举个例子吗?当你调用InvalidateOptions菜单时,它会再次调用OnCreateOptions菜单,然后你必须处理你想在OnCreateOptions菜单中执行的操作。好的。。但是我应该在哪里调用invalidateOptions菜单()?填充optionsmenu的函数是另一个java文件,正在从web服务获取数据。问题在于延迟。。如果我切换一个断点并产生一个延迟,那么整个过程都很正常。InvalidateOptions菜单用于上传optionMenu,您可以在任何地方调用它。