読者です 読者をやめる 読者になる 読者になる

kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

配列をSharedPreferencesに保存する方法 Gson

Gsonクラスを利用して配列をSharedPreferencesで保存する

 SharedPreferencesはキー1個に対して値ひとつしか保存できませんが、
Gsonを使うことで、配列を文字列に変換し、
putStringで保存ができるようになります。
 もちろん、getStringで読み出して、配列に復元することもできます。

Gsonを利用できるようにする

Gsonライブラリをプロジェクトに追加します。
Project StructureのDependenciesからcom.google.code.gsonを追加します。
(ここの手順は割愛させていただきます)

配列を保存
int[] ints = {1,2,3};
Gson gson = new Gson();
String s = gson.toJson(ints);
getSharedPreferences("MY_PREF", Context.MODE_PRIVATE).edit()
                .putString("INTS", s).commit();
配列を復元
int[] ints;
String s = getSharedPreferences("MY_PREF",Context.MODE_PRIVATE)
                .getString("INTS",null);
Gson gson = new Gson();
ints = gson.fromJson(s,int[].class);


 復元の際は、データがnullだった場合のエラー回避の処理を追加します。
fromJsonメソッドの第一引数はJson文字列(配列を文字列化したもの)、
第二引数は、復元後のデータ型を指定します。
この例では整数の配列なので、int[].classというかたちで指定します。
 これで、intsに{1,2,3}が格納されます。

 意外とかんたん☆