AndroidではファイルやDBなどデータを保存する仕組みがいくつかありますが、ユーザー名やパスワードなどのアプリケーション内部で使うちょっとしたデータを保存する程度であればプリファレンスを使うことをお勧めします。
プリファレンスは大規模なデータ保存には向きませんが、ファイルやDBを使うよりも簡単にデータの読み書きができます。
設定保存
PreferenceManager#getDefaultSharedPreferences() でSharedPreferencesオブジェクトを取得、更にこのオブジェクトの edit() でEditorオブジェクトを取得します。
1 | SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); |
2 | Editor editor = pref.edit(); |
Editorクラスには各データ型に対応した設定メソッドが用意されています。
主要な設定メソッドは以下の通りです。
メソッド |
説明 |
戻り値 |
|
SharedPreferences.Editor |
putBoolean (String key, boolean value) |
boolean値を設定する。 |
SharedPreferences.Editor |
putFloat (String key, float value) |
float値を設定する。 |
SharedPreferences.Editor |
putInt (String key, int value) |
int値を設定する。 |
SharedPreferences.Editor |
putLong (String key, long value) |
long値を設定する。 |
SharedPreferences.Editor |
putString (String key, String value) |
String値を設定する。 |
いずれのメソッドも第1引数にキー、第2引数に設定値を渡すようになっています。
キーというのは個々のデータを識別するための任意の文字列で、読み込み時はこのキーを指定して対象データを引っ張ってくることになります。
上記メソッドでデータ設定した後、commit() を呼び出すことでプリファレンスが保存されます。
3 | SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); |
4 | Editor editor = pref.edit(); |
7 | editor.putString( "キー" , "保存値" ); |
設定読み込み
保存時と同様で PreferenceManager#getDefaultSharedPreferences() でSharedPreferencesオブジェクトを取得します。
SharedPreferencesクラスには各データ型に対応した取得メソッドが用意されているので、取得対象とするデータに合わせて適切なメソッドを使用します。
主要な取得メソッドは以下の通りです。
メソッド |
説明 |
戻り値 |
|
boolean |
getBoolean (String key, boolean defValue) |
プリファレンスからboolean値を取得する。 |
float |
getFloat (String key, float defValue) |
プリファレンスからfloat値を取得する。 |
int |
getInt (String key, int defValue) |
プリファレンスからint値を取得する。 |
long |
getLong (String key, long defValue) |
プリファレンスからlong値を取得する。 |
String |
getString (String key, String defValue) |
プリファレンスからString値を取得する。 |
いずれのメソッドも第1引数に保存時に設定したキー、第2引数にデフォルト値を渡します。
2 | SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); |
3 | String hoge = pref.getString( "キー" , "デフォルト値" ); |
保存場所
プリファレンスのデータはXML形式で保存され、ファイル本体は以下の場所に格納されます。
「/data/data/[パッケージ名]/shared_prefs/[ファイル名].xml」
関連サイト
Developers:SharedPreferences
関連があると思われる記事:
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`grow` not found]