0

我已经在选项卡主机中实现了活动组。有 4 个活动组。在每个活动组的每个第一个活动中,我都有一个后退按钮。我面临一个问题。假设我有 4 个活动组,比如 A、B、C、D。现在当应用程序启动时,那时活动组 A 将在那里,当我从 A->B 切换而不是从 B->C 切换时,现在我在名为 C 的活动组中。现在当我单击活动组的返回按钮时一个C.在那个时候,标签主机的当前标签应该是我已经导航到C的上一个标签主机。是否有任何标准方法可以做到这一点,或者我们需要按照我们的逻辑放置?

谢谢

4

1 回答 1

1

没有标准的方法可以做到这一点,但话又说回来,任何事情都是有可能的!我在早期的应用程序中遇到了类似的问题。我通过维护一堆最后打开的选项卡来解决它,然后覆盖按下的后退按钮以从堆栈中删除选项卡。下面给出了一些示例代码。
初始化变量如下

tabIdStack = new Stack<Integer>();
openedTab = 0;

然后覆盖onTabChanged()

@Override
    public void onTabChanged(String tabId) {
        if (!backButtonPressed) {
            if (tabIdStack != null) {
                if (tabIdStack.size() == noOfTabs)
                    tabIdStack.remove(0);
                tabIdStack.push(openedTab);
                openedTab = tabHost.getCurrentTab();
            }
        }
        backButtonPressed = false;

然后你也应该覆盖onBackPressed()

@Override
    public void onBackPressed()
    {
        backButtonPressed = true;
        if (tabIdStack.size() == 0)
            this.finish();
        else {
            tabHost.setCurrentTab(tabIdStack.get(tabIdStack.size() - 1));
            tabIdStack.remove(tabIdStack.size() - 1);
        }       
    }
于 2013-01-16T05:52:02.133 回答