Kotlin – 在SharedPreferences上坚持MutableList

我一直在玩Android的Kotlin。 我有一个可变列表,这是一个对象列表。 现在我想坚持下去,但我不知道最好的办法是什么。 我认为这可以用SharedPreferences来完成,但我不知道如何解析对象到一个普通的格式或东西。 这些对象实际上是来自一个数据类,也许是有用的。

谢谢

在SharedPreferences中保存任何数据是非常容易的。 所有你需要做的就是让Gson implementation '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) } 

您也可以将Firebase用于数据持久性,您可以使用SharedPreferences,但个人而言,我发现使用Firebase可以更轻松,更舒适。 我将在此留下链接,以便查看Firebase的磁盘持久性行为。
希望这可以帮助你!

对于列表,它认为使用sqlite将为您提供更好的数据控制。 查看anko的sqlite wiki获取更多信息。

共享首选项主要用于存储数据(如设置或配置),但并不意味着存储大量数据,只要实现Parcable 。 如果你认为你的MutableList包含的数据很大,最好的办法就是创建一个数据库。