我一直在玩Kotlin for Android。我有一個可變列表,這是一個對象列表。現在我想堅持下去,但我不知道最好的辦法是什麼。我認爲這可以用SharedPreferences完成,但我不知道如何將對象解析爲純文本格式或其他東西。這些對象實際上來自數據類,也許這很有用。Kotlin - 在SharedPreferences上持續MutableList
感謝
我一直在玩Kotlin for Android。我有一個可變列表,這是一個對象列表。現在我想堅持下去,但我不知道最好的辦法是什麼。我認爲這可以用SharedPreferences完成,但我不知道如何將對象解析爲純文本格式或其他東西。這些對象實際上來自數據類,也許這很有用。Kotlin - 在SharedPreferences上持續MutableList
感謝
在SharedPreferences中保存任何數據非常容易。所有你需要做的就是GSONimplementation 'com.squareup.retrofit2:converter-gson:2.3.0'
,然後創建類,你想堅持這樣的:
class UserProfile {
@SerializedName("name") var name: String = ""
@SerializedName("email") var email: String = ""
@SerializedName("age") var age: Int = 10
}
在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)
}
您還可以使用火力地堡也爲數據持久化,你可以使用SharedPreferences,但我個人覺得它更容易和舒適的使用火力地堡。 我會在這裏留下一個鏈接,以便您看看Firebase的磁盤持久性行爲。
希望這可以幫助你!
感謝我想過孤子,但我需要東西本地 – jdtorregrosas
共享首選項主要用於存儲數據(如設置或配置),但它並不意味着存儲大量數據,儘管只要實施Parcable
即可。如果您認爲您的MutableList
中包含的數據很大,最好的方法是創建一個數據庫。
在這種情況下,最好不要使用數據類,我說得對嗎? – jdtorregrosas
好吧,您可以在默認值中使用kotlin中的'data class',但是我發現這樣保持它的好習慣。它更具可讀性。 –