AI Engineering Service

AI Engineering Serviceの公式ブログです。開発者のプライベートな内容を含みます。

【kotlin】gsonを用いて任意のクラスの内容をSharedPreferenceに保存する

f:id:ibarakito:20190821032626p:plain

メモ:
・swiftでいうUserDefaultsにあたるのがSharedPreference
・そのままでは基本的な型しか保存できない
・gsonを使うと任意のクラスの内容を保存できる

Gsonのインポート

import android.content.SharedPreferences
import android.content.Context
import com.google.gson.Gson

sharedPreferenceに保存したclass「myData」を読み出す

        var mydata = myData()
        val gson : Gson = Gson();
        val sharedPreferences : SharedPreferences  = getSharedPreferences("allItems",Context.MODE_PRIVATE);
        if(sharedPreferences.contains("myData")) {
            mydata=gson.fromJson(sharedPreferences.getString("myData",null),myData::class.java)
        }

sharedPreferenceにclass「myData」を保存する

         val gson : Gson = Gson();
        val sharedPreferences : SharedPreferences = getSharedPreferences("allItems",Context.MODE_PRIVATE);
        val editor : SharedPreferences.Editor = sharedPreferences.edit();
        editor.putString("myData",gson.toJson(mydata));
        editor.apply();

クラスの定義

class myData{
    var intarrayItems = mutableMapOf<String,Array<Int>>()
    var stringItems = mutableMapOf<String,String>()
    var doublearrayItems = mutableMapOf<String,Array<Double>>()
}
プライバシーポリシー / お問い合わせ