2010-06-25 25 views
6

Tengo un TabActivity, que contiene 4 actividades. Mi código establece la segunda pestaña como la ficha actual:¿Cómo prevenir el inicio de la actividad en la primera pestaña en una 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); 
} 

El problema es, cuando se inicia el MyTabActivity, se inicia la actividad tanto en la primera pestaña y la actividad en la segunda pestaña. Solo quiero que comience la actividad en la segunda pestaña, ya que está configurada para ser la pestaña actual. ¿Que debería hacer?

Gracias.

+1

@kknight: Además de no usar las actividades como el contenido de las pestañas? – CommonsWare

+0

@kknight: ¿Qué estás tratando de hacer? – Macarse

+0

Solo quiero configurar la pestaña 2 como pestaña predeterminada. Cuando se inicia la actividad de pestañas, solo comienza la actividad en la pestaña 2. Actualmente, Android inicia tanto la actividad en la pestaña 1 como la actividad en la pestaña 2, si configuro la pestaña 2 como la pestaña actual predeterminada. – user256239

Respuesta

1

¿Qué tal simplemente reordenar las pestañas para que el valor predeterminado sea el primero?

+0

De hecho. Esa es una solución. Sin embargo, no estoy seguro de querer cambiar el orden del diseño de mi IU cada vez que se inicie la aplicación. Un poco de XP IMO confuso. – typeoneerror

3

Prueba esto:

tabHost.setCurrentTab(0); 
Cuestiones relacionadas