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
Antwort
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());
}
});
...
...
...
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
gut ein es hilft mir bei meiner Arbeit gr8 antwort – Ramz
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() ;
Sind Sie sicher, dass Sie aufrufen das TabHost.getCurrentTab()? Es gibt int zurück. Wahrscheinlich hast du das mit getCurrentTabTag() falsch gemacht? –
Ich bin sicher, deshalb finde ich es so komisch. – Jack
Welche Android-Version verwenden Sie? –