解説

SharedPreferencesの使い方を簡単に纏めておく。
更新日:2017年3月25日

API Reference

重要SharedPreferencesオブジェクトを取得方法には、下記3種類が存在する。

PreferenceManager.getDefaultSharedPreferences(Context context)

アプリケーションのデフォルトの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
他のアプリケーションからの書込み可。
MODE_WORLD_READABLEとMODE_WORLD_WRITEABLEを|で連結して同時に指定できる。

ContextWrapper#getSharedPreferences(String name, int mode)

ファイル名は「引数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 );
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.