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