我有一个包含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活动,而不是当用户更改为新选项卡时。 p>
答案 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");
}
}
}
}