2010-08-27 5 views
9

Ich versuche, den Index der aktuell ausgewählten Registerkarte in OnSaveInstanceState zu speichern, damit ich es wiederherstellen kann. Das getCurrentTab gibt mir jedoch den String zurück, den ich in etTabHost() verwendet habe. NewTabSpec, was ich ein wenig merkwürdig finde, da die Dokumentation sagt, dass es ein int zurückgibt und setCurrentTab auch ein int. Weiß jemand, wie ich den Index meiner aktuell ausgewählten Registerkarte abrufen kann, damit ich es wiederherstellen kann?Erhalte Index der ausgewählten Registerkarte in tabHost

+1

Sind Sie sicher, dass Sie aufrufen das TabHost.getCurrentTab()? Es gibt int zurück. Wahrscheinlich hast du das mit getCurrentTabTag() falsch gemacht? –

+0

Ich bin sicher, deshalb finde ich es so komisch. – Jack

+1

Welche Android-Version verwenden Sie? –

Antwort

26

Sie sind auf dem richtigen Weg, verwenden Sie setOnTabChangedListener, um Ihre ausgewählte Registerkarte zu erhalten.

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

Ich habe derzeit keinen Zugriff auf meinen Laptop mit dem Code, also muss ich das morgen versuchen, aber warum würde es einen Unterschied machen, ob ich getCurrentTab im onTabChanged-Ereignis oder in meinem onSaveInstanceState verwendet habe? Und danke für Ihre aktuelle Antwort. – Jack

+0

gut ein es hilft mir bei meiner Arbeit gr8 antwort – Ramz

6

können Sie verwenden getCurrentTab(), die von 0.

+0

Diese Methode gehört zu welchem ​​Objekt? 'something.getCurrentTab()' und was ist etwas? – dialex

+0

Sein TabHost-Objekt .. – Pranav

2

Verwenden tabHost.getCurrentTab() Index der Registerkarte Start zurück Tab zu erhalten ...

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

int current = tabHost.getTabHost() ;