1

我读到可以为本指南的每个选项卡显示不同的菜单。

我在 MainActivity 中初始化了 3 个选项卡。即使我调用onPrepareOptionsMenu()oronCreateOptionsMenu()在每个 includeActivity中,它们也永远不会被执行。我刚刚成功地在 MainActivity 的初始化上显示了一个菜单......

主要活动:

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

显示此菜单。我的 TabActivity 之一:

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

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

如何正确地做?谢谢

4

1 回答 1

0

你有两个选择来做到这一点。

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

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

于 2012-06-05T10:27:22.817 回答