为什么TabHost中没有显示父Activity的菜单?

时间:2012-09-05 11:50:47

标签: android menu android-activity android-tabhost

我有活动A和TabHost。我的TabHost有2个标签。第一个选项卡包含活动B,第二个选项卡包含活动C.

enter image description here

活动A有一个菜单。活动B和C没有任何菜单。 当我点击活动A时,我可以打开它的菜单但是当我点击其中一个标签时,A的菜单没有显示。这意味着活动B或C已激活,我无法访问A菜单。

如果有这个TabHost,我怎样才能访问A的菜单或其他资源?

2 个答案:

答案 0 :(得分:5)

在标签式活动中试用此代码:

@Override public boolean onCreateOptionsMenu(Menu menu) {
    if(getParent() != null) {
        return getParent().onCreateOptionsMenu(menu);
    }
}

所以基本上你的选项卡式活动会将选项菜单请求“重定向”给主持人。

答案 1 :(得分:0)

你可以将Acrivity A的菜单放入Acitvity B ...

为此你应该将活动A的对象声明为活动B ......如下所示......

public static ActivityA a = null;

并在活动B中声明 onMenuItemSelected()方法,如此处所示....

public boolean onMenuItemSelected(int featureId, MenuItem item) {
     return a.onMenuItemSelected(featureId, item);       
}