我有一个包含2个片段的活动。两者都是ListFragments,都向菜单贡献MenuItems。我有一个MenuItem,它已将android:showAsAction属性设置为在ActionBar上显示为按钮。哪个工作正常。
现在MenuItem是依赖状态的。这是“暂停/恢复”菜单选项,用于暂停和恢复队列。我的问题是创建片段时我不知道如何设置它的初始雕像。
它的状态取决于队列是否暂停。所以我有一个AsyncTask来获取队列并根据队列的状态设置一个布尔值(已暂停)。我正在调用onPrepareOptionsMenu来基于队列的最后一个已知状态来设置“暂停”菜单项的文本,并且如果我将MenuItem保留在实际菜单中,则该方法非常有用。您单击菜单图标,将触发onPrepareOptionsMenu并在显示菜单之前对其进行更新。
问题是,如果将相同的MenuItem放在ActionBar(showAsAction)上,如何强制其更新而不必调用onPrepareOptionsMenu?我需要能够执行此操作,因为在首次启动该应用程序时,我发送了一个获取队列的请求,但是在设置并显示了ActionBar之后,任务会返回。我在片段中创建了一个处理程序,每次获取队列更新时都会调用该处理程序,但是从那里,如何更新ActionBar上MenuItem的文本?除了onPrepareOptionMenu中的内容外,我似乎找不到其他方法来操纵当前设置的Menu。
罗伯·W