onCreateOptionsMenu不会出现

时间:2012-04-13 21:09:25

标签: android menu tabs

我的申请表有这样的内容:

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;
}

1 个答案:

答案 0 :(得分:3)

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

我还没有测试过,但我的猜测是它只是使用从onCreateOptionsMenu返回true的第一个活动。如果您想为每个标签选择不同的选项菜单,则必须执行以下操作:

1)子类TabHost并覆盖onCreateOptionsMenuonPrepareOptionsMenu

2)当标签发生变化时(无法记住你如何收听此事件,谷歌),请拨打invalidateOptionsMenu,这将强制拨打onPrepareOptionsMenu

3)在onPrepareOptionsMenu中,请记得致电menu.clear(),然后执行您在onCreateOptionsMenu中执行的常规菜单通胀操作,以创建特定于标签的选项菜单。