Android TabHost,仅在堆栈上选择了选项卡

时间:2011-02-11 13:49:52

标签: android android-tabhost

我有一个包含4个标签的TabHost。我只需要在堆栈上提供所选的选项卡活动。当用户更改选项卡时,如何在上一个选项卡下完成活动。我尝试了以下代码。这里显示第一个选项卡的代码。其余选项卡类似:

spec = tabHost.newTabSpec("tab1").setIndicator("Tab1", 
            res.getDrawable(R.drawable.ic_tab_tab1))
                    .setContent(new Intent(this, Tab1.class)
                    .addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP));

但是上面的代码只有当用户再次访问该选项卡时才会删除堆栈/堆上的Tab1活动,而不是当用户更改为新选项卡时。

1 个答案:

答案 0 :(得分:1)

我看过这个,你的理由是什么? 你怎么知道堆栈里有什么?你依赖onDestroy()还是什么?

我还没有完整的答案,但你可以看到哪个标签处于活动状态:

让您的类实现 OnTabChangeListener

 public class YourClass extends TabActivity  implements OnTabChangeListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
// Load all your normal objects as well as TabHost

// make your tabhost listen for tab changes
mTabHost.setOnTabChangedListener(this);
}

 @Override
public void onTabChanged(String tabId) {

   int currentTabNumber = mTabHost.getCurrentTab();
    for(int i=0;i<mTabHost.getTabWidget().getChildCount();i++)
    {
        if(i != currentTabNumber){
            System.out.println("I'm not a currently active tab");
        }           
    }

}

 }