2010-08-27 13 views
9

J'essaie de stocker l'index de l'onglet actuellement sélectionné dans onSaveInstanceState pour que je puisse le restaurer. Cependant le getCurrentTab me rappelle apparemment la chaîne que j'ai utilisée dans le etTabHost(). NewTabSpec, que je trouve un peu bizarre puisque la documentation dit qu'elle renvoie un int et setCurrentTab prenant aussi un int. Est-ce que quelqu'un sait comment je peux obtenir l'index de mon onglet actuellement sélectionné pour que je puisse le restaurer?Récupère l'index de l'onglet sélectionné dans tabHost

+1

Etes-vous sûr que vous invoquez TabHost.getCurrentTab()? Il retourne int. Probablement vous avez égaré cela avec getCurrentTabTag()? –

+0

Je suis certain, c'est pourquoi je trouve ça si bizarre. – Jack

+1

Quelle version android utilisez-vous? –

Répondre

26

vous êtes sur la bonne voie, utilisez setOnTabChangedListener pour obtenir votre onglet sélectionné.

public class MainActivity extends TabActivity { 
      static TabHost mytabs; 

     mytabs = getTabHost(); 
      mytabs.setOnTabChangedListener(new OnTabChangeListener() { 
       @Override 
       public void onTabChanged(String arg0) {   
        Log.i("***Selected Tab", "Im currently in tab with index::" + mytabs.getCurrentTab()); 
       }  
      }); 
... 
... 
... 
+0

Je n'ai actuellement pas accès à mon ordinateur portable avec le code, donc je vais devoir essayer ça demain, mais pourquoi cela ferait-il une différence si j'utilise getCurrentTab dans l'événement onTabChanged ou dans mon onSaveInstanceState? Et merci pour votre réponse actuelle. – Jack

+0

bon il m'aide sur mon travail gr8 réponse – Ramz

6

Vous pouvez utiliser getCurrentTab() qui retourne l'index de l'onglet de départ 0.

+0

Cette méthode appartient à quel objet? 'something.getCurrentTab()' et qu'est-ce que quelque chose? – dialex

+0

Son objet TabHost .. – Pranav

2

Utilisez tabHost.getCurrentTab() pour obtenir Tab ...

tabHost= getTabHost(); 
tabHost.addTab(tab0); // TabSpec tab0=tabHost.newTabSpec(... 
tabHost.addTab(tab1); // TabSpec tab1=tabHost.newTabSpec 

int current = tabHost.getTabHost() ;