我正在开发一个应用程序,我在其中使用可滑动标签 - 使用 FragmentActivity 和每个标签的相应 fragment 实现。
现在我在每个 fragment (选项卡)中都有复选框。选中该复选框时,我需要在应用程序的操作栏(如发送/共享/删除)中启用几个菜单项,并在取消选中该复选框时禁用这些菜单。
我们怎样才能做到这一点?任何指针将不胜感激。
-- 拉基
最佳答案
在运行时更改菜单项
系统调用 onCreateOptionsMenu() 后,它会保留您填充的 Menu 的实例,并且不会再次调用 onCreateOptionsMenu() ,除非菜单因某种原因失效。但是,您应该仅使用 onCreateOptionsMenu() 来创建初始菜单状态,而不是在 Activity 生命周期内进行更改。
如果您想根据 Activity 生命周期中发生的事件修改选项菜单,您可以在 onPrepareOptionsMenu() 方法中执行此操作。此方法将当前存在的 Menu 对象传递给您,以便您可以对其进行修改,例如添加、删除或禁用项目。 ( fragment 还提供 onPrepareOptionsMenu() 回调。)
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
if (condition_true)
menu.getItem(item_index).setEnabled(false);
return true;
}
关于android - 在 Android 中动态启用/禁用菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28074754/