2017-08-28 1 views
0

Ich habe mit Kotlin für Android gespielt. Ich habe eine veränderbare Liste, die eine Liste von Objekten ist. Jetzt möchte ich sie beibehalten, aber ich weiß nicht, wie es am besten geht. Ich denke, dass es mit SharedPreferences getan werden kann, aber ich weiß nicht, wie man die Gegenstände zu einem normalen Format oder zu etwas parse. Die Objekte stammen tatsächlich von einer Datenklasse, vielleicht kann das nützlich sein.Kotlin - Persist MutableList auf SharedPreferences

Dank

Antwort

1

Es ist sehr einfach, alle Daten in SharedPreferences persistent zu machen. Alles, was Sie tun müssen, ist Gsonimplementation 'com.squareup.retrofit2:converter-gson:2.3.0' und erstellen Sie dann Klasse erhalten Sie so bestehen bleiben würden:

class UserProfile { 

    @SerializedName("name") var name: String = "" 
    @SerializedName("email") var email: String = "" 
    @SerializedName("age") var age: Int = 10 

} 

und schließlich Dank Ihrer SharedPreferences

fun saveUserProfile(userProfile: UserProfile?) { 
      val serializedUser = gson.toJson(userProfile) 
      sharedPreferences.edit().putString(USER_PROFILE, serializedUser).apply() 
     } 


fun readUserProfile(): UserProfile? { 
      val serializedUser = sharedPreferences.getString(USER_PROFILE, null) 
      return gson.fromJson(serializedUser, UserProfile::class.java) 
     } 
+0

In diesem Fall ist es besser, nicht eine Datenklasse zu verwenden, habe ich Recht? – jdtorregrosas

+0

Nun, Sie können "Datenklasse" in Kotlin mit Standardwerten verwenden, aber ich finde es gute Praxis, es so zu halten. es ist lesbarer. –

1

Sie können auch für Firebase Datenpersistenz nutzen auch Sie SharedPreferences verwenden können, aber ich persönlich finde es einfach und bequem mit Firebase. Ich werde hier einen Link hinterlassen, so dass Sie sich das Festplattenpersistenzverhalten von Firebase ansehen können.
Hoffe das hilft dir!

+0

ich über diese solition dachte aber ich brauchte etwas lokales – jdtorregrosas

0

Shared Preferences werden hauptsächlich zum Speichern von Daten wie Einstellungen oder Konfigurationen verwendet. Sie sind nicht für die Speicherung großer Datenmengen gedacht, können jedoch so lange ausgeführt werden, wie Sie Parcable implementieren. Wenn Sie glauben, dass Ihre Daten in Ihrem MutableList groß sind, besteht der beste Weg darin, eine Datenbank zu erstellen.

1

Für Listen denken Sie mit sqlite wird Ihnen eine bessere Kontrolle über Ihre Daten bieten. Check out anko's sqlite wiki für weitere Informationen.

+0

Danke, ich werde versuchen, – jdtorregrosas

Verwandte Themen