每个选项卡的菜单不同

时间:2012-06-05 09:52:58

标签: android menu android-tabhost

我读到可以为此guide上的每个标签显示不同的菜单。

我在MainActivity中初始化了3个标签。 即使我在每个包含的onPrepareOptionsMenu()中调用onCreateOptionsMenu()Activity,也不会执行它们。 我刚刚在MainActivity的初始化中显示了一个菜单......

MainActivity:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu_tab_1, menu);
    return true;
}

显示此菜单。 我的一个TabActivities:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    menu.clear();
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.menu_tab_2, menu);
    return true;
}

更改选项卡时,不会刷新此菜单。 但我尝试了多种组合(onCreate / onPrepare,Override ...)但没有成功。

怎么做得好? 感谢

1 个答案:

答案 0 :(得分:0)

您有两种选择。

首先,您可以覆盖onKeyDown方法,并检测用户何时按下菜单,而不是让主活动处理它,而是将事件分派给活动选项卡活动。

否则,您可以使用片段而不是Tab主机中的活动。片段机制非常适合组合来自多个源的选项菜单(通常是一个活动和一个或多个片段)。