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();