android在选项卡活动中设置默认选项卡

android在选项卡活动中设置默认选项卡,android,tabbar,tabactivity,Android,Tabbar,Tabactivity,android TabActivity在设置tabhost.setCurretnTab(4)之前,启动与序列中添加的第一个选项卡关联的FragmentActivity @覆盖 创建时的公共void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab_main); 尝试 { DataSource.ObjContext=this.getApplicationCont

android TabActivity在设置tabhost.setCurretnTab(4)之前,启动与序列中添加的第一个选项卡关联的FragmentActivity

@覆盖
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_main);
尝试
{ 
DataSource.ObjContext=this.getApplicationContext();
DataSource.objtabaractivity=this;
DataSource.ObjSharedPreferences=this.getSharedReferences(“com.example”,Context.MODE\u PRIVATE);
if(NetworkStat)
{
新位置更新(本);
这个.setTabs();
}
其他的
{
Log.d(“在TabBarActivity中”、“网络故障”);
Toast.makeText(this.getApplicationContext(),“网络故障”,Toast.LENGTH\u SHORT.show();
}
}
捕获(例外情况除外)
{ 
}
}
私有void setTabs()
{
addTab(“Clubs”,R.drawable.tab_Clubs,FragmentStackClubsActivity.class);
addTab(“Events”,R.drawable.tab_Events,FragmentStackEventsActivity.class);
addTab(“速率”,R.drawable.tab\u速率,FragmentStackRateActivity.class);
addTab(“忠诚度”,R.drawable.tab_忠诚度,FragmentStackLoyaltyActivity.class);
addTab(“设置”,R.drawable.tab_设置,FragmentStackSettingsActivity.class);
if(DataSource.ObjSharedPreferences.getString(DataSource.LOGIN_标记,“false”).equalsIgnoreCase(“false”))
{
getTabHost().setCurrentTab(4);
DataSource.disableTabBar();
}
其他的
{
}
}
私有void addTab(字符串labelId,int-drawableId,c类)
{
TabHost TabHost=getTabHost();
意向=新意向(本,c);
TabHost.TabSpec spec=TabHost.newTabSpec(“tab”+labelId);
查看tabIndicator=LayoutInflater.from(this).充气(R.layout.tab_indicator,getTabWidget(),false);
TextView title=(TextView)tabIndicator.findViewById(R.id.title);
标题:setText(labelId);
ImageView图标=(ImageView)选项卡indicator.findViewById(R.id.icon);
icon.setImageResource(drawableId);
规格设置指示器(tabIndicator);
规格设置内容(意图);
tabHost.addTab(spec);
}
但问题是,它首先启动第一个选项卡,然后切换到第五个选项卡。这样,线程就从第一个选项卡启动,而这正是我不想要的,也就是说,如果用户未登录,我想将用户重定向到登录(设置)选项卡。 非常感谢您在这方面的帮助

public void setCurrentTab (int index)
public void setCurrentTabByTag (String tag)
你可以喜欢这个

if (isNotLogin) {
     tabHost.setCurrentTabByTag("Setting");
}
在addTab()之后


我不想重新排序TabBar,以便在开始时启动第五个选项卡……问题不是它没有更改选项卡,事实上它确实更改了选项卡,但它首先启动了第一个选项卡,线程在其中启动,然后切换到第五个选项卡,我想直接转到第5个选项卡,而不是第一个选项卡。您需要在初始时间知道tabhost中每个活动的生存期;事实上,当您在初始时间使用setCurrentTab(5)时,它只运行第一个活动的onCreate;因此,您需要在第一个活动中移动线程以重新开始。
if (isNotLogin) {
     tabHost.setCurrentTabByTag("Setting");
}