我的应用程序具有以下内容:
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的第一个活动。如果要为每个选项卡使用不同的选项菜单,则必须做几件事:
1)子类TabHost
并覆盖onCreateOptionsMenu
和onPrepareOptionsMenu
。
2)当选项卡更改时(不记得如何监听此事件,请用Google搜索),请呼叫invalidateOptionsMenu
,这将强制呼叫到onPrepareOptionsMenu
。
3)在onPrepareOptionsMenu
中,记住要调用menu.clear()
,然后执行在onCreateOptionsMenu
中执行的常规菜单填充操作,以创建选项卡特定的选项菜单。
关于android - onCreateOptionsMenu没有出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10148352/