2010-03-03 5 views
5

A continuación se muestra el ejemplo de pestañas con datos de intención.primer intento de la pestaña de Android oncreate llamado siempre independientemente de que configuremos tab2 como pestaña predeterminada

Mientras se depura me encontré con que siempre cuando la primera pestaña añadimos anfitrión pestaña en nuestro caso siguiente pestaña

tabHost.addTab(tabHost.newTabSpec("tab1") 
        .setIndicator("list") 
        .setContent(new Intent(this, List1.class))); 

método alcrear de "list1" intento ser llamado sin tener en cuenta que es nuestra cuenta corriente o no, aunque si Defino tab2 como una pestaña actual, ¿cómo solucionar esto?

public class Tabs3 extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final TabHost tabHost = getTabHost(); 

     tabHost.addTab(tabHost.newTabSpec("tab1") 
       .setIndicator("list") 
       .setContent(new Intent(this, List1.class))); 

     tabHost.addTab(tabHost.newTabSpec("tab2") 
       .setIndicator("photo list") 
       .setContent(new Intent(this, List8.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 

     // This tab sets the intent flag so that it is recreated each time 
     // the tab is clicked. 
     tabHost.addTab(tabHost.newTabSpec("tab3") 
       .setIndicator("destroy") 
       .setContent(new Intent(this, Controls2.class) 
         .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 
    } 
} 
+0

Por lo tanto, desea agregar todas las pestañas, pero tienen algo que no sea la primera ficha puede seleccionar en forma predeterminada, y no quiere que la actividad Lista1 que se crea hasta que haga clic en la pestaña? – synic

+0

sí, estás en lo correcto. –

Respuesta

1

setDefaultTab (1);

parece que no funciona en TabActivity cuando se utilizan actividades separadas como contenido de pestañas.

Uso

siguiente lugar de este método,

tabHost.setCurrentTab (1);

Esto establecerá "lista de fotos" (es decir, la segunda pestaña) como la ficha seleccionada por defecto o ...

+2

Tengo el mismo problema, y ​​no, esto no funciona. Establece la pestaña seleccionada, pero la onCreate de la primera pestaña se llama sin importar qué. – typeoneerror

+0

mismo error aquí, la pestaña actual funciona pero también se llama a la primera pestaña oncreate. – rnaud

0

He encontrado este mismo comportamiento, así, y no tengo una solución específica. Pero sí sé de una solución alternativa.

En lugar de adjuntar Actividades a cada pestaña, adjunte una Vista a cada pestaña. A continuación, puede manejar los datos que pasan muy fácilmente, ya que cada vista estará en la misma actividad. Esto también elimina la necesidad de pasar información usando Intents. Además, puede crear (o inflar) sus Vistas según las necesite y con más control.

Buena suerte, -Scott

Cuestiones relacionadas