AndroidのSharedPreferencesの使い方
SharedPreferencesとは
SharedPreferencesとはAndroid端末内に簡易的にデータの保存/読取を行う仕組みです。
アプリのデータを初期化しない限り、Preferenceに保存したデータも消えないので、
データを簡易的にアプリ内で共有して取り扱うことができます。
具体的にどういった場面で使うかというと、アプリ内で共有するべきアプリの設定データ(音声ON/OFFなど)に使われることが多いです。
インスタンスの取得方法
// インスタンスの取得
SharedPreferences sp = Common.get().getSharedPreferences( "saveData", Context.MODE_PRIVATE ) ;
インスタンスの取得方法の引数の説明
引数で保存データ名とモード(Context.MODE_PRIVATE)を渡しています。
ファイル操作のモードは4つありますが、非推奨になっているものもありますので、
特に明確な意図がなければMODE_PRIVATEにするのが無難です。
モード名の一覧
モード名 | 効果 | 備考 |
---|---|---|
MODE_PRIVATE | 自アプリのみ読み書き可能 | |
MODE_WORLD_READABLE | 他アプリから読み取り可能 | API Level17から非推奨 |
MODE_WORLD_WRITEABLE | 他アプリから書き込み可能 | API Level17から非推奨 |
MODE_MULTI_PROCESS | 複数のプロセスで読み書き可能 | API Level23から非推奨 |
データの保存
SharedPreferences.Editor editor = prefs.edit();
editor.putString("string", "value");
editor.putBoolean("boolean", false);
editor.putInt("int", 0);
editor.putLong("long", 0);
editor.putFloat("float", 0.0);
editor.apply();
SharedPreferences.Editor editor = prefs.edit();で、SharedPreferences.Editorオブジェクトを取得します。
取得したオブジェクトに対して、putStringやputIntなどのメソッドを使用してデータを保存していきます。
ここで一点注意して頂きたいのが、etidor.apply();しないとデータ保存が反映されないので気を付けてください。
データの読み込み
String str = prefs.getString("string");
boolean bool = prefs.getBoolean("boolean");
int intNum = prefs.getInt("int");
long longNum = prefs.getLong("long");
float floatNum = prefs.getFloat("float");
データを読み込むにはgetStringやgetIntのメソッド使用して、
引数にデータの保存時に指定した、キーを指定することでデータの読み込みができます。
ファイルの保存場所
保存したデータはdata/data/パッケージ名/shared_prefsの中にxmlファイルとして保存されます。
スポンサーリンク