【问题标题】:Why the menu of parent Activity is not shown in TabHost?为什么 TabHost 中不显示父 Activity 的菜单?
【发布时间】:2012-09-05 11:50:46
【问题描述】:

我有 Activity A 和 TabHost。我的 TabHost 有 2 个标签。第一个标签有活动 B,第二个标签有活动 C。

活动 A 有一个菜单。活动 B 和 C 没有任何菜单。 当我单击活动 A 时,我可以打开其菜单,但是当我单击其中一个选项卡时,未显示 A 的菜单。这意味着Activity B或C被激活,我无法访问A的菜单。

当 A 有这个 TabHost 时,我如何才能访问 A 的菜单或其他资源?

【问题讨论】:

  • 只是好奇,但您不能在TabHostBC 的两个活动中复制A 的菜单吗?
  • 制作一个有菜单创建代码的父活动。现在将此 Activity 扩展到其他 Activity 中,如 A 、 B 和 C 。试试这个,让我知道它是否是你需要的......

标签: android menu android-activity android-tabhost


【解决方案1】:

在您的选项卡式活动中尝试此代码:

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

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

【讨论】:

    【解决方案2】:

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

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

    public static ActivityA a = null;
    

    并在 Activity B 中声明 onMenuItemSelected() 方法,如下所示......

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

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多