メモ:
・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>>() }