【Androidアプリケーションの設定画面を作ろう】PreferenceManagerのクラスメソッド

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

PreferenceManagerはPreferenceActivityやPreferenceFragmentからプリファレンスの管理を補助するためのクラスです。
今回はPreferenceManagerに定義されているクラスメソッドを説明します。

デフォルトプリファレンスの名前を取得する

static String getDefaultSharedPreferencesName(Context context)を使うことでアプリケーション内のデフォルトプリファレンスの名前を取得することができます。
    String defaultSharedPreferencesName = PreferenceManager.getDefaultSharedPreferencesName(getActivity());

デフォルトプリファレンスを取得する

static SharedPreferences getDefaultSharedPreferences(Context context)を使うことでアプリケーション内のデフォルトプリファレンスを表すSharedPreferencesを取得することができます。
    SharedPreferences defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

初期値を設定する

PreferenceManager.setDefaultValuesはプリファレンスの初期値を設定するためのクラスメソッドです。
また、PreferenceManager.setDefaultValuesは下記の二つのオーバーロードがあります。

static void setDefaultValues(Context context, int resId, boolean readAgain)

このオーバーロードはデフォルトプリファレンスを初期化するときに使用します。
Context contextコンテキストを設定します。
int resIdプリファレンスに読み込むxmlリソースIDを設定します。このファイルで定義された各項目のandroid:defaultValue属性の値が初期値となります。
boolean readAgain再初期化するかを設定します。trueの場合は必ず初期化されます。falseの場合は一番最初の呼び出し時のみ初期化されます。

static void setDefaultValues(Context context, String sharedPreferencesName, int sharedPreferencesMode, int resId, boolean readAgain)

このオーバーロードは任意のプリファレンスを初期化するときに使用します。
Context contextコンテキストを設定します。
String sharedPreferencesNameプリファレンスの名前を設定します。
int sharedPreferencesModeプリファレンスのモード(Context.MODE_PRIVATE等)を設定します。
int resIdプリファレンスに読み込むxmlリソースIDを設定します。このファイルで定義された各項目のandroid:defaultValue属性の値が初期値となります。
boolean readAgain再初期化するかを設定します。trueの場合は必ず初期化されます。falseの場合は一番最初の呼び出し時のみ初期化されます。
このメソッドはアプリケーションの開始位置で呼ぶ必要があります。
    PreferenceManager.setDefaultValues(getActivity() , R.xml.pref_general , true);
    PreferenceManager.setDefaultValues(getActivity() , "hoge" , Context.MODE_PRIVATE , R.xml.pref_general , true);