onconfigurationchanged

___ qstnhdr ___ Android onConfigurationChanged: Wie speichere und restauriere ich den Fragment-Back-Stack? ___ answer10038711 ___

Ich konnte dies tun, indem ich die Fragmente im Cache speicherte, während ich sie in meine eigene ArrayListe einfügte. Dann richte ich einen OnBackStackChangedListener ein, um zu verfolgen, welcher angezeigt wurde, und platziere die ArrayList nach Bedarf.

Mein Zweck war ein wenig anders, aber der folgende Code sollte das sein, was du für das brauchst, was du beschreibst. Die Tags sind so, dass Sie bei Bedarf mehrere Backstacks haben können. Es wird nicht wie es ist kompiliert (Ich habe viel von meinem eigenen Code abgeschnitten), aber sollte Ihnen eine Vorstellung davon geben, wie ich es gemacht habe. Zusätzlicher Haftungsausschluss: Ich habe nur funktioniert und es gibt Probleme, die ich noch nicht erreicht habe.

%Vor%

Der Code, den Sie benötigen, wenn Ihre Aktivität nach einer Orientierungsänderung neu erstellt wird:

%Vor%

Der Backstack-Listener:

%Vor%

Hoffe, das hilft.

    
___ qstntxt ___

Ich habe eine Aktivität mit einem Doppelfenster: eine Liste von Menüelementen auf der linken Seite (Fragment M) und Details des aktuell ausgewählten Elements auf der rechten Seite (Fragment D).

Wenn der Benutzer ein Element in Fragment D auswählt, wird Fragment D durch ein anderes Fragment ersetzt (nennen wir es D1). Wenn der Benutzer ein Element in Fragment D1 auswählt, wird Fragment D1 durch ein anderes Fragment ersetzt (nennen wir es D2), und so weiter. Wenn der Benutzer den Zurück-Knopf drückt, kann er natürlich in der Fragmentgeschichte zurückgehen: D2- & gt; D1- & gt; D.

Mein Problem ist: Wie kann ich den vollständigen Fragment-Back-Stack bei Konfigurationsänderungen (insbesondere bei der Bildschirmausrichtung) speichern und wiederherstellen?

Es kommt mir sehr seltsam vor, dass niemand zuvor dieses Problem hatte, aber ich habe bei meinen Suchanfragen bei Google und Stack Overflow nichts darüber gefunden. Wenn ich einen relevanten Beitrag verpasst habe, bitte adressiere mich dazu.

Ich weiß, dass ich einfach das %code% -Attribut zu meiner Aktivität hinzufügen kann, um Aktivitätserholung zu vermeiden, aber das kann ich einfach nicht tun.

Der Grund, warum ich das nicht kann, ist, dass ich Action Bar Sherlock (Vers. 4) für die Abwärtskompatibilität verwende und diese Komponente Activity Recreation benötigt, um sich bei Konfigurationsänderungen richtig zu verhalten, AFAIK.

Wenn es eine andere Möglichkeit gibt, die Action Bar Sherlock-Komponente neu zu erstellen, ohne die Aktivität zu zerstören und neu zu erstellen, lassen Sie es mich bitte wissen.

Vielen Dank im Voraus.

    
___ tag123onconfigurationchanged__ Hilf uns dabei, dieses Wiki zu bearbeiten ___ tag123android ___ Android ist das mobile Betriebssystem von Google, das zum Programmieren oder Entwickeln von digitalen Geräten (Smartphones, Tablets, Automobile, Fernseher, Wear, Glass, IoT) verwendet wird. Verwenden Sie für Themen rund um Android Android-spezifische Tags wie android-intent, nicht intent, android-activity, nicht activity, android-adapter, nicht adapter usw. Bei anderen Fragen als der Entwicklung oder Programmierung, aber im Zusammenhang mit Android Framework, verwenden Sie Der Link: https://android.stackexchange.com. ___ tag123backstack ___ "Backstack" ist ein Stack, in dem Aktivitäten innerhalb einer Android-Task angeordnet sind. Android-Aufgabe ist eine Sammlung von Aktivitäten, mit denen Benutzer interagieren, wenn sie einen bestimmten Job ausführen. Durch diesen Vorgang werden Aktivitäten auf dem Stapel in der Reihenfolge platziert, in der jede Aktivität geöffnet wird. Die Aktivitäten können später in umgekehrter Reihenfolge durch Drücken der Schaltfläche "Zurück" aufgerufen werden. ___ answer10002896 ___

Aktionsleiste Sherlock (ABS) musste die Aktionsleiste als Teil der Neuerstellung der Aktivität in ABS 3.x neu erstellen, laut @ Jake Whartons Kommentar , Version 4 braucht keine Erholung - es kann mit Orientierungsänderungen umgehen. Setzen Sie also android: configChanges="orientation" und Ihr Fragment-Back-Stack wird beibehalten.

    
___
4
Antworten

Android Layout Land funktioniert nicht

Ich habe mir Probleme im Stackoverflow angesehen und habe alles versucht, was ich gesehen habe, aber das Layout-Land funktioniert nicht. In meinem Code habe ich und die Methode onConfigurationChanged %Vor% Und die Manifestdatei: %Vor%...
18.03.2014, 10:09
2
Antworten

Android onConfigurationChanged: Wie speichere und restauriere ich den Fragment-Back-Stack?

Ich habe eine Aktivität mit einem Doppelfenster: eine Liste von Menüelementen auf der linken Seite (Fragment M) und Details des aktuell ausgewählten Elements auf der rechten Seite (Fragment D). Wenn der Benutzer ein Element in Fragment D ausw...
03.04.2012, 18:45