2017-08-28 113 views
0

我一直在玩Kotlin for Android。我有一個可變列表,這是一個對象列表。現在我想堅持下去,但我不知道最好的辦法是什麼。我認爲這可以用SharedPreferences完成,但我不知道如何將對象解析爲純文本格式或其他東西。這些對象實際上來自數據類,也許這很有用。Kotlin - 在SharedPreferences上持續MutableList

感謝

回答

1

在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) 
     } 
+0

在這種情況下,最好不要使用數據類,我說得對嗎? – jdtorregrosas

+0

好吧,您可以在默認值中使用kotlin中的'data class',但是我發現這樣保持它的好習慣。它更具可讀性。 –

1

您還可以使用火力地堡也爲數據持久化,你可以使用SharedPreferences,但我個人覺得它更容易和舒適的使用火力地堡。 我會在這裏留下一個鏈接,以便您看看Firebase的磁盤持久性行爲。
希望這可以幫助你!

+0

感謝我想過孤子,但我需要東西本地 – jdtorregrosas

0

共享首選項主要用於存儲數據(如設置或配置),但它並不意味着存儲大量數據,儘管只要實施Parcable即可。如果您認爲您的MutableList中包含的數據很大,最好的方法是創建一個數據庫。

1

對於列表,它認爲使用sqlite將爲您提供更好的數據控制。 查看anko's sqlite wiki瞭解更多信息。

+0

謝謝我會盡力 – jdtorregrosas