最佳答案
我有一个活动有2个片段。它们都是 ListFragments,都将 MenuItems 贡献给 Menu。我有一个 MenuItem,我已经设置了属性 android: showAsAction,让它在 ActionBar 上显示为一个按钮。效果不错。
现在 MenuItem 依赖于状态。它是暂停/恢复菜单选项,用于暂停和恢复队列。我的问题是我不知道如何设置它的初始雕像当碎片被创建。
它的状态取决于队列是否暂停。因此,我有一个 AsyncTask,它获取队列并根据队列的状态设置布尔值(暂停)。我调用 onPrepareOptionsMenu 根据队列的最后一个已知状态来设置“暂停”菜单项的文本,如果我将 MenuItem 保留在实际菜单中,那么这个工作得非常好。您点击菜单图标,onPrepareOptionsMenu 被激发,并且菜单在显示之前被更新。
问题是,如果我将相同的 MenuItem 放在 ActionBar (showAsAction)上,如何在不调用 PrepareOptionsMenu 的情况下强制它更新?我需要能够做到这一点,因为在第一次启动应用程序时,我发送了一个请求来获取队列,但任务在设置和显示 ActionBar 之后返回。我已经在片段中创建了一个处理程序,每次获得队列更新时都会调用它,但是从那里开始,我如何更新 ActionBar 上 MenuItem 的文本呢?我似乎无法找到一种方法来获得目前设置菜单操作它,除了在准备选项菜单。
Rob W.