android - onCreateOptionsMenu 没有出现

标签 android menu tabs

我的应用程序有这样的东西:

TabActivity
    Tab 1 (ActivityGroup)
        Activity > Activity > MapActivity
    Tab 2 (ActivityGroup)
        MapActivity

问题是在Tab 2 MapActivity选项菜单没有出现,甚至显示错误。但在第一个 MapActivity 中效果很好。我在 onCreateOptionsMenu 方法中放置了一个断点,但我什至进入了它。

我用了这个tutorial让我的应用程序基于 TabHost。

谁能帮我知道为什么一个有效而另一个无效?

提前致谢。

更新

关于版本:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="13" />

第一个 MapActivity 类:

public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 1, "Nearest");
    menu.add(0, 1, 1, "Directions");
    return true;
}

第二个 MapActivity 类:

public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, 0, 1, "Nearest");
    menu.add(0, 1, 1, "Region");
    return true;
}

最佳答案

基本上 TabHost 只有一个选项菜单。

我没有测试过它,但我的猜测是它只是使用从 onCreateOptionsMenu 返回 true 的第一个 Activity 。如果你想为每个选项卡使用不同的选项菜单,你必须做几件事:

1) 子类 TabHost 并覆盖 onCreateOptionsMenuonPrepareOptionsMenu

2)当标签更改时(不记得您如何收听此事件,Google IT),调用 InvalidateOptionsMenu ,它将强制调用 onprepareoptionsmenu

3) 在 onPrepareOptionsMenu 中,记得调用 menu.clear(),然后执行您在 onCreateOptionsMenu 中执行的正常菜单膨胀操作> 创建您的选项卡特定选项菜单。

关于android - onCreateOptionsMenu 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148352/

相关文章:

java - OpenExchangeRates.org 的任何 java 示例

html - 当整个菜单 div 有边框底部时,悬停时在菜单中链接的边框底部

jquery-ui - SVG 'getBBox' 在 jQueryUI 选项卡中失败

html - 可变宽度 li 标签

Android相机 Intent 在拍摄肖像时保存图像风景

java - 尝试在空对象引用上调用接口(interface)方法 'boolean java.util.Set.addAll(java.util.Collection)'

html - 在 CSS : How to make an absolute-positioned content display outside of its relative-positioned parent? 中定位

android - 在选项卡中加载不同的 Activity

android - 我如何从异步任务返回位图

php - 将数据属性添加到 wp_nav_menu