[android] SharedPreferenceに配列などのObjectを保存・読み取りする方法
目次
SharedPreferenceでAndroidのローカルデバイスに値などを保存できるが
保存できる型が決まっているため、通常の方法では配列などのObjectは保存できない
JSON文字列に変換することで保存が可能
保存
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Gson gson = new Gson(); // objectをjson文字列へ変換 String jsonInstanceString = gson.toJson(instance); // 変換後の文字列をputStringで保存 pref.edit().putString("PREF_KYE",jsonInstanceString).apply();
読み取り
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Gson gson = new Gson(); // 保存されているjson文字列を取得 String userSettingString = prefs.getString("PREF_KYE", ""); // json文字列を 「UserSettingクラス」のインスタンスに変換 instance = gson.fromJson(userSettingString, UserSetting.class);