In meiner App habe ich TextView
und EditText
. Beide haben Daten. Wenn sich die Bildschirmausrichtung ändert, EditText
bleiben die Daten in den Überresten, aber die TextView
Daten werden gelöscht.
Kann mir jemand helfen, einen Weg zu finden, um auch Daten TextView
zu speichern ?
Um Daten zur Orientierungsänderung beizubehalten, müssen Sie die beiden Methoden implementieren:
quelle
1) Nicht alle Ansichten mit einer ID speichern ihren Status. Android-Widgets mit einer ID, deren Status vom Benutzer geändert werden kann, scheinen ihren Status bei einem Soft-Kill zu speichern. EditText speichert also seinen Status, TextView speichert seinen Status jedoch nicht bei einem Soft-Kill.
"AFAIK, Android stört das Speichern des Status nur für Dinge, von denen erwartet wird, dass sie sich ändern. Aus diesem Grund speichert es den Text in einem EditText (den ein Benutzer wahrscheinlich ändert) und speichert den Status möglicherweise nicht für eine TextView (die normalerweise statisch bleibt) ) "
Mark M.
Sie können also den Status der Textansicht in onSaveInstanceState speichern und den Status der Textansicht in onCreate wiederherstellen.
2) Es wird empfohlen, den "internen" Instanzstatus ohne Ansicht zu speichern, auch wenn Sie dies deklarieren
Aus den Dokumenten:
"Ihre Anwendung sollte jedoch immer in der Lage sein, mit ihrem vorherigen Status herunterzufahren und neu zu starten. Nicht nur, weil es andere Konfigurationsänderungen gibt, die Sie nicht daran hindern können, Ihre Anwendung neu zu starten, sondern auch, um Ereignisse zu behandeln, z. B. wenn der Benutzer einen eingehenden Empfang erhält Telefonanruf und kehrt dann zu Ihrer Anwendung zurück. "
JAL
quelle
Android erledigt solche Dinge nicht für Sie. Sie haben alle Daten manuell gespeichert.
Sie können in einer Aktivität Werte speichern
und verwenden Sie so etwas in der oncreate-Methode einer Aktivität, um die gespeicherten Objekte zu laden
Sie können auch die Deaktivierung der Orientierungsänderung für eine Aktivität auswählen
quelle
Ändern Sie Ihre Aktivitäten in AndroidManifest.xml, um das Verhalten bei Orientierungsänderungen zu überschreiben, indem Sie dies zu Ihrer Aktivität / Ihren Aktivitäten hinzufügen:
Es sollte ungefähr so aussehen:
quelle
Fügen Sie diese zu AndroidManifest.xml hinzu. Geben
Sie Ihren Aktivitätsnamen an die Stelle von Aktivitätsname
Dies funktioniert auch mit der Wertänderung von TextField.
quelle
einfach hinzufügen
zu Ihrer Aktivität in AndroidManifest.xml.
quelle
Wenn sich die Konfiguration ändert, startet Android Ihre Aktivität standardmäßig neu. Um dies zu ändern, sollten Sie die
onConfigurationChanged()
Methode überschreiben . Außerdem sollten Sie hinzufügenandroid:configChanges
Ihrer Manifestdatei .Sie können mehr lesen hier .
quelle
Ich habe auch verwendet
und es hat nicht funktioniert.
Aber dann habe ich eine Lösung gefunden.
Überprüfen Sie, ob Sie die folgende Zeile korrekt in Ihrem männlichsten haben:
Stellen Sie sicher, dass es nicht so etwas liest
Ich hatte es auf die zweite Art und Weise, aber als ich es korrigierte, blieb der Zustand erhalten.
quelle