私はTabHostを使用しており、2つのアクティビティを持つ2つのタブがあり、2番目のタブをデフォルトのタブに設定したいのですが、tabhostが起動すると、最初のtab1をロードし、tab2の前にこれは間違っています。これらの2つのアクティビティではWebサービスからデータをロードするからです。私の質問は、最初のタブをロードせずに現在のタブの2番目のタブを設定する方法です!
私のタブホストコード:
public class TabsHandler extends TabActivity {
private static TabHost tabHost;
Intent intent;
private void setupTabHost() {
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this.getLocalActivityManager());
tabHost.setCurrentTab(1);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(!isOnline())
Utils.DialogNoInternet(this);
String authToken = getIntent().getExtras().getString("token");
Long role = getIntent().getExtras().getLong("role");
String EventIdNotification =getIntent().getExtras().getString("EventIdNotification");
setContentView(R.layout.event_list_tabs);
setupTabHost();
Resources res = getResources();
tabHost.getTabWidget().setClipChildren(false);
setupTab(new TextView(this), res.getString(R.string.tab1_List),new Intent().setClass(this, EventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("EventIdNotification", EventIdNotification));
setupTab(new TextView(this), res.getString(R.string.tab2_List),new Intent().setClass(this, PastEventListActivity.class).putExtra("authToken", authToken).putExtra("role", role).putExtra("isPast", "true"));
tabHost.setCurrentTab(1);
}
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
private void setupTab(final View view, final String tag,Intent intent) {
View tabview = createTabView(tabHost.getContext(), tag);
TabSpec setContent = tabHost.newTabSpec(tag);
setContent.setIndicator(tabview);
setContent.setContent(intent);
tabHost.addTab(setContent);
}
private static View createTabView(final Context context, final String text) {
View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}