我的应用程序有这样的东西:
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
并覆盖 onCreateOptionsMenu
和 onPrepareOptionsMenu
。
2)当标签更改时(不记得您如何收听此事件,Google IT),调用 InvalidateOptionsMenu
,它将强制调用 onprepareoptionsmenu
。
3) 在 onPrepareOptionsMenu
中,记得调用 menu.clear()
,然后执行您在 onCreateOptionsMenu
中执行的正常菜单膨胀操作> 创建您的选项卡特定选项菜单。
关于android - onCreateOptionsMenu 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148352/