Können wir in Android ein Objekt einer Klasse in gemeinsamen Einstellungen speichern und das Objekt später abrufen?
Wenn es möglich ist, wie es geht? Wenn es nicht möglich ist, welche anderen Möglichkeiten gibt es dafür?
Ich weiß, dass Serialisierung eine Option ist, aber ich suche nach Möglichkeiten, die gemeinsame Präferenzen verwenden.
android
object
sharedpreferences
androidGuy
quelle
quelle
Antworten:
Nicht möglich.
Sie können nur einfache Werte in SharedPrefences SharePreferences.Editor speichern
Was ist besonders an der Klasse, die Sie speichern müssen?
quelle
Ja, wir können dies mit Gson tun
Laden Sie den Arbeitscode von GitHub herunter
Zum Speichern
Für bekommen
Update1
Die neueste Version von GSON kann von github.com/google/gson heruntergeladen werden .
Update2
Wenn Sie Gradle / Android Studio verwenden, geben Sie einfach Folgendes in den
build.gradle
Abschnitt "Abhängigkeiten" ein.quelle
String json = gson.toJson("MyObject");
sollte das Objekt kein String sein.Wir können Outputstream verwenden, um unser Objekt in den internen Speicher auszugeben. Und in einen String konvertieren und dann vorzugsweise speichern. Beispielsweise:
wenn wir Objekt aus Präferenz extrahieren müssen. Verwenden Sie den folgenden Code
quelle
Ich hatte das gleiche Problem, hier ist meine Lösung:
Ich habe die Klassen MyClass und ArrayList <MyClass>, die ich in den freigegebenen Einstellungen speichern möchte. Zuerst habe ich MyClass eine Methode hinzugefügt, die es in ein JSON-Objekt konvertiert:
Dann ist hier die Methode zum Speichern des Objekts "ArrayList <MyClass> -Elemente":
Und hier ist die Methode zum Abrufen des Objekts:
Beachten Sie, dass StringSet in den freigegebenen Einstellungen seit API 11 verfügbar ist.
quelle
Verwenden der Gson Library:
Geschäft:
Abrufen:
quelle
Sie können es mit
PowerPreference
Bibliothek in 3 einfachen Schritten tun !https://github.com/AliAsadi/PowerPreference
1. Objekt erstellen
2. Schreiben Sie in die gemeinsame Präferenz
3. Das Objekt erhalten
quelle
Mit diesem Objekt -> TinyDB - Android-Shared-Preferences-Turbo ist es sehr einfach. Sie können die meisten häufig verwendeten Objekte wie Arrays, Ganzzahlen, Zeichenfolgenlisten usw. damit speichern
quelle
Sie können Complex Preferences Android - von Felipe Silvestre Library verwenden, um Ihre benutzerdefinierten Objekte zu speichern. Grundsätzlich wird der GSON-Mechanismus zum Speichern von Objekten verwendet.
So speichern Sie ein Objekt in den Einstellungen:
Und um es wieder abzurufen:
quelle
Sie können GSON mit Gradle Build.gradle verwenden:
Dann in Ihrem Code zum Beispiel Paare von String / Boolean mit Kotlin:
Hinzufügen zu SharedPrefs:
Um nun Daten abzurufen:
quelle
Common Shared Preference (CURD) SharedPreference: Zum Speichern von Daten in Form von Wert-Schlüssel-Paaren mit einer einfachen Kotlin-Klasse.
Daten speichern:
Zum Speichern von String-, Int- und Booleschen Daten stehen drei Methoden mit demselben Namen und unterschiedlichen Parametern zur Verfügung (Methodenüberladung).
Daten abrufen: Verwenden Sie die folgenden Methoden, um die in SharedPreferences gespeicherten Daten abzurufen.
Alle Daten löschen: Um die gesamten SharedPreferences zu löschen, verwenden Sie den folgenden Code.
Spezifische Daten entfernen:
Gemeinsame gemeinsame Präferenzklasse
Blog: https://androidkeynotes.blogspot.com/2020/02/shared-preference.html
quelle
Es gibt keine Möglichkeit, Objekte in SharedPreferences zu speichern. Ich habe eine öffentliche Klasse erstellt, alle benötigten Parameter eingegeben und Setter und Getter erstellt. Ich konnte auf meine Objekte zugreifen.
quelle
Müssen Sie das Objekt auch nach dem Herunterfahren der Anwendung oder während der Ausführung abrufen?
Sie können es in einer Datenbank speichern.
Oder erstellen Sie einfach eine benutzerdefinierte Anwendungsklasse.
Und dann von jeder Aktivität tun:
Nicht wirklich der beste Weg, aber es funktioniert.
quelle
Ja. Sie können das Objekt mit Sharedpreference speichern und abrufen
quelle