我有 Activity A 和 TabHost。我的 TabHost 有 2 个标签。第一个选项卡有活动 B,第二个选项卡有活动 C。
活动 A 有一个菜单。活动 B 和 C 没有任何菜单。当我点击 Activity AI 可以打开它的菜单,但是当我点击其中一个选项卡时,A 的菜单没有显示。这意味着活动 B 或 C 已激活,我无权访问 A 的菜单。
当它有这个 TabHost 时,我怎样才能访问 A 的菜单或其他资源?
我有 Activity A 和 TabHost。我的 TabHost 有 2 个标签。第一个选项卡有活动 B,第二个选项卡有活动 C。
活动 A 有一个菜单。活动 B 和 C 没有任何菜单。当我点击 Activity AI 可以打开它的菜单,但是当我点击其中一个选项卡时,A 的菜单没有显示。这意味着活动 B 或 C 已激活,我无权访问 A 的菜单。
当它有这个 TabHost 时,我怎样才能访问 A 的菜单或其他资源?
在您的选项卡式活动中尝试此代码:
@Override public boolean onCreateOptionsMenu(Menu menu) {
if(getParent() != null) {
return getParent().onCreateOptionsMenu(menu);
}
}
所以基本上你的选项卡式活动会将选项菜单请求“重定向”到主机。
您可以将 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);
}