LoginSignup
2
4

More than 5 years have passed since last update.

AndroidでGSONを利用してArrayListを保存する

Posted at

AndroidでArrayListを保存する際、SQLiteを使うほどでもない単純な場合は、
JSONにしてPreferenceに保存すると便利です。

また、JSONへ変換する際にはGSON(Google製ライブラリ)を使うとさらに楽になると思います。
https://github.com/google/gson

今回はArrayList<String>型を変換して保存します。

GSONの導入

Android Studioにて、gsonライブラリをgradleで導入。

dependencies{
      ...
      ...
      compile 'com.google.code.gson:gson:2.7' //少し古いかも
}

読み込み

private ArrayList<String> arrayList;
SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
arrayList = gson.fromJson(pref.getString(SAVE_KEY, ""), new TypeToken<ArrayList<String>>(){}.getType());

もしpreferenceに未保存の状態の処理も分岐させたいならこんな感じに

private ArrayList<String> arrayList;
SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
String json = pref.getString(SAVE_KEY, "");
if(json.equals("[]"))
{
    arrayList = new ArrayList<>();
}
else
{
    arrayList = gson.fromJson(json, new TypeToken<ArrayList<String>>(){}.getType());
}

書き込み

SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE);
Gson gson = new Gson();
pref.edit().putString(SAVE_KEY, gson.toJson(arrayList)).apply();
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4