Wiederherstellen des Status von TextView nach der Bildschirmdrehung?
In meiner app habe ich TextView
und EditText
. Beide haben Daten. Wenn die Bildschirmausrichtung ändert die Daten in der EditText
bleibt, aber TextView
Daten gelöscht.
Kann jemand mir helfen, einen Weg zu finden, um retain-Daten in TextView
auch?
InformationsquelleAutor der Frage kAnNaN | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie erzwingen möchten, dass Ihr
TextView
Ihren Zustand speichern müssen SiefreezesText
Attribut:Aus der Dokumentation auf
freezesText
:InformationsquelleAutor der Antwort inazaruk
Um retain-Daten auf die Ausrichtung ändern, müssen Sie implementieren, die zwei Methoden:
InformationsquelleAutor der Antwort Eric Nordvik
Android ist nicht in der Lage, die Art von Sachen für Sie. Sie haben speichern Sie alle Daten manuell ein.
Können Sie in einer Aktivität, um die Werte zu speichern
und verwenden Sie so etwas wie dies in der oncreate-Methode einer activity zu laden der gespeicherten Objekte
können Sie auch wählen, deaktivieren Sie die Ausrichtung ändern, die für eine Tätigkeit
InformationsquelleAutor der Antwort Kevin
1) Nicht alle Ansichten mit einer ID speichern Ihren Zustand. Android-widgets, mit einer ID, deren Zustand kann vom Benutzer geändert werden, erscheinen Sie auf speichern, Ihren Staat auf eine weiche zu töten. So EditText speichert seinen Zustand, aber TextView nicht speichert seinen Zustand auf einer weichen töten.
"AFAIK, nur Android stört das speichern des Zustands für die Dinge, die erwartet werden, um
ändern. Das ist, warum es speichert den text in einem EditText (was ein user ist
wahrscheinlich ändern wird) und vielleicht nicht zu retten, die der Staat für ein TextView (die normalerweise statisch bleibt)"
Mark M
So Sie wählen können, zum speichern des Zustand des textview in onSaveInstanceState und Sie können wählen, um die Wiederherstellung des Zustandes der textview in onCreate.
2) Best practice zu retten ist "intern", nicht "Instanz anzeigen" - Zustand, selbst wenn Sie deklarieren,
Aus der docs:
"Allerdings sollte die Anwendung immer in der Lage zum Herunterfahren und neu starten mit den vorherigen Zustand intakt. Nicht nur, weil es andere änderungen an der Konfiguration, die Sie können nicht verhindern, dass einen Neustart Ihrer Anwendung, aber auch, um Ereignisse zu behandeln, wie wenn der Benutzer nimmt einen eingehenden Anruf und dann zurück zu Ihrer Anwendung."
JAL
InformationsquelleAutor der Antwort JAL
Ändern Sie Ihre Aktivitäten in AndroidManifest.xml überschreiben Orientierung Verhalten zu ändern, indem diese Ihre Aktivität/Aktivitäten:
Sollte es ungefähr so Aussehen wie diese:
InformationsquelleAutor der Antwort Joakim Berglund
Fügen Sie diese zu AndroidManifest.xml
Stellen Sie Ihre Aktivität Namen im Ort der Activity_Name
Diese arbeiten mit Wert ändern TextField auch.
InformationsquelleAutor der Antwort Rahul Krishna
Wenn änderungen an der Konfiguration Android startet Ihre Aktivitäten standardmäßig. Dies zu ändern, sollten Sie überschreiben
onConfigurationChanged()
Methode. Auch sollten Sieandroid:configChanges
um Ihre manifest-Datei.Lesen Sie mehr hier.
InformationsquelleAutor der Antwort Vladimir Ivanov
Ich auch
und es hat nicht funktioniert.
Aber dann habe ich eine Lösung gefunden.
Überprüfen, wenn Sie die folgende Zeile richtig in Ihrer maniest:
stellen Sie sicher, dass es nicht soetwas zu Lesen
Ich hatte es die zweite Weise, in Erster Linie aber, wenn ich korrigiert, es Stand erhalten habe.
InformationsquelleAutor der Antwort Optimus