gpt4 book ai didi

android - 在 onPostCreate 中调用 onCreateOptionsMenu

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:23 26 4
gpt4 key购买 nike

我想动态更改 onCreateOptionsMenu 项。我已经纠正了我的问题,唯一的解决办法是在 onPostCreate 中调用 onCreateOptionsMenu 但我不知道如何调用它。我已经尝试过我的解决方案无效。甚至可能..?

最佳答案

在运行时更改菜单项(来自文档)

系统调用onCreateOptionsMenu() 后,它会保留您填充的Menu 实例,不会再次调用onCreateOptionsMenu(),除非由于某种原因,菜单无效。但是,您应该仅使用 onCreateOptionsMenu() 来创建初始菜单状态,而不是在 Activity 生命周期中进行更改。

如果您想根据 Activity 生命周期中发生的事件修改选项菜单,您可以在 onPrepareOptionsMenu() 方法中执行此操作。此方法将当前存在的 Menu 对象传递给您,以便您可以对其进行修改,例如添加、删除或禁用项目。 ( fragment 还提供了一个 onPrepareOptionsMenu() 回调。)

在 Android 2.3.x 及更低版本上,系统会在用户每次打开选项菜单(按下菜单按钮)时调用 onPrepareOptionsMenu()

在 Android 3.0 及更高版本上,当菜单项出现在操作栏中时,选项菜单被视为始终打开。当事件发生并且您想要执行菜单更新时,您必须调用 invalidateOptionsMenu() 以请求系统调用 onPrepareOptionsMenu()

invalidateOptionsMenu() 已添加到 API 11 中,使我们能够强制再次调用 onCreateOptionsMenu()。

invalidateOptionsMenu

注意:

在 ICS 和 Honeycomb 的情况下,onCreateOptionsMenu()onCreate()onPostCreate() 之后被调用,而在 Gingerbread 和更早的版本中它在 onCreate() 之后但在 onPostCreate() 之前被调用。

尝试以下操作:

public static void refreshMenu(Activity activity)
{
activity.invalidateOptionsMenu();
}

关于android - 在 onPostCreate 中调用 onCreateOptionsMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23332962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com