2017-08-28 48 views
0

私はAndroid用Kotlinで遊んでいます。私はオブジェクトのリストである変更可能なリストを持っています。今私はそれらを維持したいが、私はそれを行うための最善の方法がわからない。私はそれがSharedPreferencesで行うことができると思うが、私はオブジェクトを単純な形式または何かに解析する方法を知らない。オブジェクトは実際にはデータクラスから来ていますが、おそらくそれは役に立つかもしれません。Kotlin - SharedPreferencesでMutableListを維持する

おかげ

答えて

1

SharedPreferences内のデータを永続化することは非常に簡単です。あなたのSharedPreferencesで

class UserProfile { 

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

} 

と最終的に私はそのsolitionについて考えたが、私は必要な

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を使用することができますが、個人的に私はFirebaseを使用して、それがより簡単かつ快適見つけます。 ここにリンクを残して、ディスクの永続性の動作をFirebaseにすることができます。
これがあなたを助けてくれることを願っています!

+0

感謝を:すべてを行う必要があるimplementation 'com.squareup.retrofit2:converter-gson:2.3.0'Gsonに取得し、あなたがこのように存続したいクラスを作成することです何かローカル – jdtorregrosas

0

共有設定は、ほとんどの場合、設定や設定などのデータの保存に使用されます。Parcableを実装している限り、大きなデータを保存することはできません。 MutableListに含まれるデータが大きいと思われる場合は、データベースを作成することをお勧めします。

1

リストの場合、sqliteを使用すると、データをよりよく制御できるようになると思います。 詳細についてはanko's sqlite wikiをご覧ください。

+0

ありがとう私はしようとします – jdtorregrosas

関連する問題