Speichern Sie den Tab-Status während der Orientierungsänderung

8

Ich habe 2 Tabs, zum Beispiel Tab1 & amp; Tab2, die auf dem Bildschirm angezeigt wird. Lassen Sie die Tabs in der PORTRAIT-Ausrichtung angezeigt werden.

Tab1 zeigt Activity1 & amp; Tab2 zeigt Activity2.

Derzeit ist der ausgewählte Tabstopp-Tab2. Jetzt ändere ich die Ausrichtung für PORTRAIT zu LANDSCAPE. Wenn Sie die Ausrichtung in den LANDSCAPE-Modus ändern, wird Tab1 angezeigt, statt Tab2 anzuzeigen.

Grundsätzlich möchte ich den Tab-Zustand speichern, wenn es eine Orientierungsänderung gibt.

Um das Ziel zu erreichen, den Tab-Status zu speichern, schreibe ich den folgenden Code:

%Vor%

Ich wollte wissen, ist meine Annäherung richtig oder nicht & amp; ob der obige Code eine korrekte Möglichkeit ist, den Tab-Zustand beim Ändern der Ausrichtung zu speichern.

    
chiranjib 15.03.2011, 20:29
quelle

2 Antworten

2

Das ist nicht der beste Weg. Sie sollten onRetainNonConfigurationInstance () und getLastNonConfigurationInstance () verwenden, um den Status zwischen Konfigurationsänderungen beizubehalten. Diese Methoden dienen speziell zum Speichern des Status während der Konfigurationsänderungen.

%Vor%     
Robby Pond 15.03.2011, 20:36
quelle
18

Das ist nicht so, wie es gemacht werden sollte. Stattdessen benutze das:

%Vor%

Dann in der Methode onCreate :

%Vor%

Die Robby-Lösung funktioniert auch und verwendet die Methode onRetainNonConfigurationInstance . Ich mag und bevorzuge diese Methode über onSaveInstanceState , da es Ihnen ermöglicht, ein komplexes Objekt zu speichern, das den Status der App darstellt, und nicht nur Parcables in Bundle .

Also wann soll man das andere benutzen? Es hängt von den Daten ab, die Sie zum Speichern / Wiederherstellen des Status der App benötigen. Für einfache Dinge wie das Speichern des Tab-Status ist es fast gleich.

    
Cristian 15.03.2011 20:35
quelle

Tags und Links