目次
解説
SharedPreferencesの使い方を簡単に纏めておく。更新日:2017年3月25日
API Reference
重要SharedPreferencesオブジェクトを取得方法には、下記3種類が存在する。
-
-
アプリケーションのデフォルトのSharedPreferencesオブジェクトを取得する。
ファイルのアクセスモードは常にMODE_PRIVATEとなる。
PreferenceManager.getDefaultSharedPreferences(Context context)SharedPreferences preferences=PreferenceManager.getDefaultSharedPreferences(this);
-
Activity#getPreferences(int mode)
-
ファイル名は「Activityのクラス名.xml」となる。
引数modeには、以下のようなファイルのアクセスモードを指定する。- MODE_PRIVATE
- 他のアプリケーションからのアクセス不可。
- MODE_WORLD_READABLE
- 他のアプリケーションからの読込み可。
- MODE_WORLD_WRITEABLE
- 他のアプリケーションからの書込み可。
-
-
ファイル名は「引数nameで指定した値.xml」となる。
引数modeによりアクセスモードを指定する。
ActivityはContextWrapperクラスを継承しているので、Activityクラスよりこのメソッドを操作できる。
データ取得方法
getBoolean
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するbooleanタイプのデータを存在しない場合の初期値を「false」として取得する方法。
boolean val1 = preference.getBoolean( 'キー', false );
getFloat
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するfloatタイプのデータを存在しない場合の初期値を「0.0」として取得する方法。
float val1 = preference.getFloat( 'キー', 0.0 );
getInt
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するintタイプのデータを存在しない場合の初期値を「0」として取得する方法。
int val1 = preference.getInt( 'キー', 0 );
getLong
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するlongタイプのデータを存在しない場合の初期値を「0」として取得する方法。
long val1 = preference.getLong( 'キー', 0 );
getString
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するStringタイプのデータを存在しない場合の初期値を「""」として取得する方法。
String val1 = preference.getString( 'キー', "" );
データ登録方法
putBoolean
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するbooleanタイプのデータを保存する方法。
// 下記では「false」を登録している。
preference.edit().putBoolean( 'キー', false );
preference.edit().commit();
putFloat
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するfloatタイプのデータを保存する方法。
// 下記では「0.0」を登録している。
preference.edit().putFloat( 'キー', 0.0 );
// 処理内容をコミットする。
preference.edit().commit();
putInt
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するintタイプのデータを保存する方法。
// 下記では「0」を登録している。
preference.edit().putInt( 'キー', 0 );
// 処理内容をコミットする。
preference.edit().commit();
putLong
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するlongタイプのデータを保存する方法。
// 下記では「0」を登録している。
preference.edit().putLong( 'キー', 0 );
// 処理内容をコミットする。
preference.edit().commit();
putString
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定した「キー」に該当するStringタイプのデータを保存する方法。
// 下記では「0」を登録している。
preference.edit().putString( 'キー', "" );
// 処理内容をコミットする。
preference.edit().commit();
データの削除方法
キーを指定して削除する方法
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 指定されたキーのデータを削除する。
preference.edit().remove( 'キー' );
// 処理内容をコミットする。
preference.edit().commit();
全てのデータを削除する方法
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
// 全てのデータを削除する。
preference.edit().clear();
// 処理内容をコミットする。
preference.edit().commit();
登録されている内容を全て取得する方法
重要
SharedPreferencesクラスのgetAllメソッドを使用すると、保存されているすべてのキーと値を取得する事ができる。
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences( this );
Map<String,?> map = preference.getAll();
for( Entry<String, ?> entry : map.entrySet() )
{
// キー
String key = entry.getKey();
// 値
Object value = entry.getValue();
// ログ出力
String msg=String.format( "%s = %s", key, value );
Log.v( "LogSample", msg );
}