【Androidでデータやファイルと戯れる】 Preference(プリファレンス)を使おう

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

今回は簡単にデータを永続化することができる、「プリファレンス」についてです。
プリファレンスに保存できるデータ型は以下の6つです。

  1. boolean
  2. int
  3. float
  4. long
  5. String
  6. Set

各値は一つのファイルにKey-Value形式で保存されます。
プリファレンスはよく使うので、今回はアクセスしやすいようにラッパークラスを作成しました。

public class PreferenceAccessor {
    /**
    * プリファレンスを保存するファイル名
    */
    private static final String PREFERENCE_NAME = "user_data";

    /**
    * キーで指定したboolean型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static boolean getPreference(Context context, String key, boolean defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getBoolean(key, defaultValue);
    }

    /**
    * キーで指定したプリファレンスにboolean型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, boolean value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putBoolean(key, value).apply();
    }

    /**
    * キーで指定したint型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static int getPreference(Context context, String key, int defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getInt(key, defaultValue);
}

    /**
    * キーで指定したプリファレンスにint型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, int value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putInt(key, value).apply();
    }

    /**
    * キーで指定したlong型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static long getPreference(Context context, String key, long defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getLong(key, defaultValue);
    }

    /**
    * キーで指定したプリファレンスにlong型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, long value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putLong(key, value).apply();
    }

    /**
    * キーで指定したfloat型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static float getPreference(Context context, String key, float defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getFloat(key, defaultValue);
    }

    /**
    * キーで指定したプリファレンスにfloat型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, float value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putFloat(key, value).apply();
    }

    /**
    * キーで指定したString型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static String getPreference(Context context, String key, String defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getString(key, defaultValue);
    }

    /**
    * キーで指定したプリファレンスにString型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, String value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putString(key, value).apply();
    }

    /**
    * キーで指定したSet<String>型のプリファレンスを取得する。
    * @param context コンテキスト
    * @param key キー
    * @param defaultValue デフォルト値
    * @return プリファレンス値
    */
    public static Set<String> getPreference(Context context, String key, Set<String> defaultValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getStringSet(key, defaultValue);
    }

    /**
    * キーで指定したプリファレンスにSet<String>型の値を設定する。
    * @param context コンテキスト
    * @param key キー
    * @param value 設定値
    */
    public static void setPreference(Context context, String key, Set<String> value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().putStringSet(key, value).apply();
    }

    /**
    * すべてのプリファレンスを削除する。
    * @param context コンテキスト
    */
    public static void clearPreference(Context context) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
    sharedPreferences.edit().clear().apply();
    }

    /**
    * 指定したキーのプリファレンスを削除する
    * @param context コンテキスト
    * @param key キー
    */
    public static void removePreference(Context context , String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        sharedPreferences.edit().remove(key).apply();
    }

    /**
    * 指定したキーが存在するかを判定する
    * @param context コンテキスト
    * @param key キー
    * @return true:存在する/false:存在しない
    */
    public static boolean containsKey(Context context ,String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.contains(key);
    }

}

 

Androidゲームプログラミング A to Z

新品価格
¥4,968から
(2017/2/27 22:58時点)


AndroidエンジニアのためのモダンJava

新品価格
¥3,456から
(2017/2/27 23:01時点)


AndroidNDKネイティブプログラミング第2版

中古価格
¥1,893から
(2017/2/28 00:04時点)


Androidアプリ開発逆引きレシピ (PROGRAMMER’S RECiPE)

新品価格
¥3,024から
(2017/2/28 00:06時点)


Android Studio ではじめる Android プログラミング入門 第3版 Android Studio 2対応

新品価格
¥3,240から
(2017/2/28 00:11時点)


アプリを作ろう! Android入門 Android Studio版 Android5対応

新品価格
¥2,160から
(2017/2/28 00:31時点)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)