我的申请表有这样的内容:
TabActivity
Tab 1 (ActivityGroup)
Activity > Activity > MapActivity
Tab 2 (ActivityGroup)
MapActivity
问题是,在标签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;
}
答案 0 :(得分:3)
基本上TabHost
只有一个选项菜单。
我还没有测试过,但我的猜测是它只是使用从onCreateOptionsMenu
返回true的第一个活动。如果您想为每个标签选择不同的选项菜单,则必须执行以下操作:
1)子类TabHost
并覆盖onCreateOptionsMenu
和onPrepareOptionsMenu
。
2)当标签发生变化时(无法记住你如何收听此事件,谷歌),请拨打invalidateOptionsMenu
,这将强制拨打onPrepareOptionsMenu
。
3)在onPrepareOptionsMenu
中,请记得致电menu.clear()
,然后执行您在onCreateOptionsMenu
中执行的常规菜单通胀操作,以创建特定于标签的选项菜单。