具有相同菜单、相同布局的片段会导致重复的 menuitem

2024-02-18

我有一个包含 2 个片段的布局。这些片段使用相同的菜单,因为我有另一个布局,其中只有其中一个(在小屏幕设备中使用)。

我的问题是每个片段的菜单项显示在菜单中,并且由于它们来自同一菜单,因此它们彼此重复。我需要仅显示一个片段的菜单,而不是两者。无论如何我可以存档这个吗?

或者,也许更好,创建 2 个不同的菜单。一种用于仅具有这些片段之一的布局(用于小屏幕设备),另一种用于具有两个片段的布局。我怎么能这样做呢?

编辑:我使用 ActionBarSherlock 库来实现向后兼容性,并在 Android 3.0 模拟器上测试它。


我找到了不太好的解决方案。在每个片段的 onCreateOptionsMenu() 中,调用 menu.clear() 在膨胀菜单之前删除任何现有的菜单项。

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.clear();
    inflater.inflate(R.menu.main, menu);
    super.onCreateOptionsMenu(menu, inflater);

}

这将发布未来的问题。我可能决定为每个片段使用不同的菜单,每个菜单共享菜单项。我认为我们可以在 onCreateOptionsMenu() 处操作菜单,但目前我不知道如何在使用 MenuInflater 对其进行膨胀之前获取与片段关联的菜单项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有相同菜单、相同布局的片段会导致重复的 menuitem 的相关文章

随机推荐

  • 与 .NET 2.0/3.5 一起使用的最佳免费 ORM 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 寻找多语言编译器或优化器(c、c++、java)

    简而言之 我正在寻找一种方法来编辑开源编译器或优化器 以将传统的锁实现更改为软件跨国内存事务 我有三种目标语言 C C 和 Java 一种想法可能是使用 GCC 因为它现在支持 stm 问题是 我想不出一种方法来对 GCJ 转储的 java
  • C# 将字符串转换为字符 - Unicode

    看一下这段代码 string s 0x00A5 Console WriteLine char s ToString Error Console WriteLine char 0x00A5 ToString 我知道为什么会出现错误 但我不知道
  • 如何使用文化将变量中的波斯数字转换为英文数字?

    我想更改保存在变量中的波斯数字 如下所示 string Value to string Value 1036751 我怎样才能使用文化信息这样的简单方法来做到这一点 我的示例代码是 List
  • Bootstrap 合并行(rowspan)

    我正在测试推特引导程序 http twitter github io bootstrap 并陷入困境 带行的基本脚手架 我多次重新访问他们的文档 我可以看到嵌套列 您基本上可以在列中嵌套列 但我找不到 将行合并为一行并将其与未合并行旁边的列
  • SceneKit:如果目标是旋转相机并将节点 X 单位投影到相机前面,请使用变换或直接操作旋转/位置属性?

    对于体素艺术应用程序 目标是让用户在 SceneKit 场景中移动和旋转相机 然后点击以放置块 下面的代码允许用户通过平移来旋转相机 手势结束后 我们移动现有块 使其位于相机 Z 轴上的 X 单位 即相机前面的 X 单位 cameraNod
  • 方案中的参数传递

    谁能帮我理解Scheme中的各种参数传递模式 我知道Scheme实现了按值传递参数 但其他模式又如何呢 有没有关于Scheme中参数传递的好的文档 方案有only按值调用函数调用 还有其他可以在该语言中实现的替代方案 但如果您是初学者 那么
  • android firebase 12.0.0 - mAuth.getCurrentUser().getProvider() 方法被删除,如何获取提供程序名称?

    in firebase version 11 8 0 有一种方法叫做mAuth getCurrentUser getProviders 我可以打电话索取提供商名称列表 因此 对于电子邮件提供商来说 它是 密码 对于 Facebook 来说
  • 如何在 Visual Studio 中选择自定义菜单项的图标?

    我使用自定义命令 外部工具命令 作为 SolutionExplorer 的项目上下文菜单的条目 如何为我的自定义命令分配图标 我可以使用 修改选择 来选择命令的名称 并且可以选择 图像和文本 选项 但是 我没有找到用于选择用于我的自定义菜单
  • 如何在 Y 轴上绘制多个列的图表? (MS 图表控件)

    尝试遵循这个例子 http weblogs asp net dwahlin archive 2008 11 25 getting started with the asp net 3 5 chart control aspx http we
  • C++:是否有理由在非异常情况下使用异常

    让我给你举个例子 假设你有一个可以有子窗口的窗口类 每个子窗口都保存一个指向其父窗口的弱指针 每个窗口都有一个指向其子窗口的共享指针列表 现在我遇到的情况是 如果子窗口被破坏 我不知道它被破坏是因为父窗口被关闭 还是因为子窗口本身被关闭 因
  • 如何将我的整体程序分割成更小的、单独的文件?

    在我在网上看到的所有代码中 程序总是被分成许多较小的文件 不过 对于我所有的学校项目 我只需要一个巨大的 C 源文件 其中包含我使用的所有结构和函数 我想学习如何将我的程序分割成更小的文件 这似乎是专业标准 顺便问一下 这是为什么 只是为了
  • 如何在playframework 2.0中配置FS数据库?

    这有可能吗 在框架的第一个版本中似乎很容易完成 而不是使用 Default database configuration db default driver org h2 Driver db default url jdbc h2 mem
  • Spark 序列化错误:当我将 Spark Stream 数据插入 HBase 时

    我对 Spark 如何在数据格式方面与 HBase 交互感到困惑 例如 当我在下面的代码片段中省略 ERROR 行时 它运行良好 但是添加该行后 我发现了与序列化问题相关的 任务不可序列化 的错误 如何更改代码 发生错误的原因是什么 我的代
  • 如果 LONG_MAX 为 2147483647,strtol("-2147483648", 0, 0) 是否会溢出?

    根据规格strtol 如果主题序列具有预期的形式并且base的值为0 则以第一个数字开始的字符序列应被解释为整数常量 如果主题序列具有预期的形式并且base的值在2到36之间 则应将其用作转换的base 将每个字母赋予上面给出的值 如果主题
  • 识别iPhone中两个字符串之间的字符串[重复]

    这个问题已经存在了 可能的重复 根据条件从 iPhone 中的字符串中检索子字符串 https stackoverflow com questions 11100379 retrieving the substring based on c
  • Magento - 报价和订单之间的区别

    我对付款方式中如何调用报价和订单有疑问 据我所知 报价是提供的一组产品或服务 在 magento 中 报价数据是在单击 Onepage Checkout 的 下订单 按钮之前创建的 下订单后 订单数据将在 Magento 中创建 如果订单得
  • SLURM 对可执行文件进行多个并行调用

    我有一个可执行文件 需要多个选项和多个文件输入才能运行 可以使用可变数量的核心来调用可执行文件来运行 例如 可执行文件 a b c file fileA file fileB file fileZ cores X 我正在尝试创建一个 sba
  • 从一个文件中减去另一个文件中的行

    我找不到真正从一个文件中减去另一个文件的答案 我的目标是删除一个文件中出现在另一个文件中的行 应考虑多次出现 这意味着 例如 如果一行在文件 A 中出现 4 次 而在文件 B 中仅出现一次 则文件 C 应该包含其中的 3 行 File A
  • 具有相同菜单、相同布局的片段会导致重复的 menuitem

    我有一个包含 2 个片段的布局 这些片段使用相同的菜单 因为我有另一个布局 其中只有其中一个 在小屏幕设备中使用 我的问题是每个片段的菜单项显示在菜单中 并且由于它们来自同一菜单 因此它们彼此重复 我需要仅显示一个片段的菜单 而不是两者 无