2010-03-03 3 views
5

Voici l'exemple des onglets avec des données d'intention.android premier onglet intention oncreate toujours appelé indépendamment nous avons mis tab2 comme onglet par défaut

Lors du débogage je trouve que toujours quand premier onglet, nous ajoutons hôte onglet dans notre cas suivant onglet

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

méthode oncreate de « List1 » l'intention se dit peu importe, il est notre onglet ou même pas si si Je définis tab2 comme un onglet en cours comment résoudre ce problème?

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

, vous voulez ajouter tous les onglets, mais avoir quelque chose autre que le premier onglet sélectionné sur défaut, et vous ne voulez pas l'activité Liste1 à créer jusqu'à ce que vous cliquez sur l'onglet? – synic

+0

oui vous avez raison. –

Répondre

1

setDefaultTab (1);

semble ne pas fonctionner dans TabActivity lorsque des activités distinctes sont utilisées comme contenu d'onglet.

Utilisation suivant à la place de cette méthode,

tabHost.setCurrentTab (1);

Cela définira « la liste des photos » (i.e. deuxième onglet) que l'onglet sélectionné ou par défaut ...

+2

J'ai le même problème, et non cela ne fonctionne pas. Il définit l'onglet sélectionné, mais l'onCreate du premier onglet est appelé n'importe quoi. – typeoneerror

+0

même erreur ici, l'onglet actuel fonctionne mais le premier onglet oncreate est encore appelé. – rnaud

0

J'ai trouvé ce même comportement que bien, et je n'ai pas une solution spécifique. Mais je connais une solution de rechange. Au lieu d'attacher des activités à chaque onglet, attachez une vue à chaque onglet. Vous pouvez ensuite gérer les données passant très facilement car chaque vue sera dans la même activité. Cela élimine également le besoin de transmettre des informations en utilisant Intents. De plus, vous pouvez créer (ou gonfler) vos vues selon vos besoins et avec plus de contrôle.

Bonne chance, -Scott

Questions connexes