はじめに
値を簡単に保存できるsharedprefarencesというのがあります。けれどこいつは元々存在する特定の型の値しか保存できないので不便です。
今回はどんな型でも保存できる方法をメモします。
方法
基本的にはGsonを使って保存したいオブジェクトをJSONに変換して、それをString型のものとしてsharedprefarencesで保存するだけ
使ったライブラリ
Gson
読み込み
SharedPreferences preferences = getActivity().getSharedPreferences("key", Activity.MODE_PRIVATE);
Gson gson = new Gson();
ArrayList<MyData> mydata = gson.fromJson(preferences.getString("topic",""), new TypeToken<List<MyData>>(){}.getType());
書き込み
SharedPreferences preferences = getActivity().getSharedPreferences("key", Activity.MODE_PRIVATE);
Gson gson = new Gson();
preferences.edit().putString("topic", gson.toJson(mydata)).commit();