SharedPreferenceおさらい
ネタはある(というか書き溜めている)のに更新できていない…。
ので、職場で更新する暴挙に出た!
年末だし、レスポンス遅いし、やることはやってるからいいよね。。
「Gson」というライブラリを使うにあたって、Preferenceをおさらいしておこう~
と、急に思い立ったのでざっくりまとめます。
続きを読む
そもそもSharedPreferenceとは
ざっくりこんな感じ。
・Androidデバイス内にデータを保存する仕組みだよ
・SharedPreference自体はXMLファイルだよ
・アプリを削除しなければ永続的にデータ保持できるよ
・キー・バリュー形式で保存するよ
・環境設定の保存などによく使われるよ
・保存できるデータ型には String, int, float, long, boolean, Set<String>があるよ
基本操作
// インスタンスの取得 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); SharedPreferences.Editor editor = prefs.edit(); // データの書き込み editor.putString(key, value); editor.apply(); // データの書き出し String test = prefs.getString(key);
SharedPreferences.Editor | Android Developers
個人的にやっている実装方法
ラッパークラスを作っておくと、外からそれを呼ぶだけでOKになるので楽!
★別ページで使用するメソッドについてはこちら。
手を加えればオブジェクトっぽいものも保存できて便利です。
aimy74.hatenablog.com
public class PreferenceManager { // KEYS private static final String KEY_SAMPLE = "keySample"; private static final String KEY_OBJECT = "keyObject"; // VALUES(デフォルト定義など、必要であれば) // テキストを保存する public static void setText(Context context, String value){ save(context, KEY_SAMPLE, value); } // テキストを読み込む public static String getText(Context context) { return readString(context, KEY_SAMPLE); } // ★別ページで使用する public static void setObject(Context context, String value){ save(context, KEY_OBJECT, value); } public static String getObject(Context context) { return readString(context, KEY_OBJECT); } // 書き込みメソッドのラッパー private static void save(Context context, String key, String value) { SharedPreferences prefs = android.preference.PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = prefs.edit(); editor.putString(key, value); editor.apply(); } // 読み出しメソッドのラッパー private static String read(Context context, String key) { SharedPreferences prefs = android.preference.PreferenceManager.getDefaultSharedPreferences(context); return prefs.getString(key, ""); } }
呼ぶときはこんな感じ。
// 書き込み PreferenceManager.setText(getAplicationContext(),"テスト"); // 読み出し String sampleText = PreferenceManager.setText(getAplicationContext());
以上、個人的なおさらいでした。