我已经阅读了很多示例,问题和教程,但我从未见过使用特定标签启动活动(启动新意图)。我知道可以使用.setCurrentTab
切换到选项卡,但这只能在父活动选项卡中完成。如何从不同的活动中启动一个活动中包含的特定选项卡?可能吗?如果是这样,那怎么样?
在我的代码中,在标准活动启动用户显示第一个选项卡,但我希望他转到第四个选项卡,以防他从另一个活动重定向。 我的TabHost代码(MyTabActivity):
int tabIndex = 0;
mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10));
mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable));
mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product));
mTabHost.addTab(mTabHost.newTabSpec("regular").setIndicator("Regular").setContent(R.id.General));
mTabHost.setCurrentTab(tabIndex);
现在进行另一项活动:
public void gotoTab() {
//This will take me to the first tab
Intent i = new Intent(this, MyTabActivity.class);
startActivity(i);
finish();
//How to I make it take me to the fourth tab?
}
答案 0 :(得分:12)
您需要在新活动的构造函数中使用setCurrentTab
自行处理它。
在调用时,您应该在intent中添加其他值 -
Intent i = new Intent(this, MyTabActivity.class);
i.putExtra("FirstTab", 4);
在MyTabActivity的构造函数中 -
Intent i = getIntent();
int tabToOpen = i.getIntExtra("FirstTab", -1);
if (tabToOpen!=-1) {
// Open the right tab
}
答案 1 :(得分:0)
使用标签位置
进行尝试Intent intent = new Intent(MyActivity.this,TabScreenActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra(ConstantString.ViewTab,1); startActivity(意向);
在TabScreenActivity的构造函数中
if(getIntent()!= null){
tabPosition = getIntent().getIntExtra(ConstantString.ViewTab, tabPosition);
if (tabPosition == 1) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
viewPager.setCurrentItem(1, true);
}
}, 1000);
} else {
viewPager.setCurrentItem(0, true);
}
} else {
viewPager.setCurrentItem(0, true);
}