2010-06-25 4 views
6

Ho un TabActivity, che contiene 4 attività. Mio codice imposta la seconda scheda come la scheda corrente:Come impedire l'avvio dell'attività nella prima scheda di TabActivity?

public class MyTabActivity extends TabActivity { 
    TabHost tabHost = getTabHost(); 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    TextView tabView; 

    // Create an Intent to launch an Activity for the tab (to be reused) 
    intent = new Intent().setClass(this, Activity1.class); 

    spec = tabHost.newTabSpec("Tab 1"); 
    spec.setContent(intent); 
    tabView = (TextView) inflater.inflate(R.layout.ff_tab_indicator, null); 
    tabView.setText("Tab 1"); 
    spec.setIndicator(tabView); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, Activity2.class); 
    spec = tabHost.newTabSpec("Tab 2"); 
    spec.setContent(intent); 
    tabView = (TextView) inflater.inflate(R.layout.ff_tab_indicator, null); 
    tabView.setText("Tab 2"); 
    spec.setIndicator(tabView); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, Activity3.class); 
    spec = tabHost.newTabSpec("Tab 3"); 
    spec.setContent(intent); 
    tabView = (TextView) inflater.inflate(R.layout.ff_tab_indicator, null); 
    tabView.setText("Tab 3"); 
    spec.setIndicator(tabView); 
    tabHost.addTab(spec); 

    intent = new Intent().setClass(this, Activity4.class); 
    spec = tabHost.newTabSpec("Tab 4"); 
    spec.setContent(intent); 
    tabView = (TextView) inflater.inflate(R.layout.ff_tab_indicator, null); 
    tabView.setText("Tab 4"); 
    spec.setIndicator(tabView); 
    tabHost.addTab(spec); 

    tabHost.setCurrentTab(1); 
} 

Il problema è che, quando inizia la MyTabActivity, inizia l'attività sia nella prima scheda e l'attività nella seconda scheda. Voglio solo che inizi l'attività nella seconda scheda, poiché è impostata per essere la scheda corrente. Cosa dovrei fare?

Grazie.

+1

@kknight: Oltre a non utilizzare le attività come il contenuto delle schede? – CommonsWare

+0

@kknight: cosa stai cercando di fare? – Macarse

+0

Voglio solo impostare la scheda 2 come scheda predefinita. All'avvio dell'attività tab, viene avviata solo l'attività nella scheda 2. Attualmente, Android avvia entrambe le attività nella scheda 1 e l'attività nella scheda 2, se imposto la scheda 2 come scheda corrente predefinita. – user256239

risposta

1

Che dire semplicemente riordinando le schede in modo che il valore predefinito diventi il ​​primo?

+0

Infatti. Questa è una soluzione. Non sono sicuro di voler cambiare l'ordine del layout della mia interfaccia utente ogni volta che l'app si avvia. Un po 'di confuso XP IMO. – typeoneerror

3

Prova questo:

tabHost.setCurrentTab(0); 
Problemi correlati