如何知道活动组中的最后一个标签ID?

时间:2013-01-16 04:36:00

标签: android tabs tabactivity

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

谢谢

1 个答案:

答案 0 :(得分: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);
        }       
    }