#Preferenceの基本
データ、保存したいですよね。
データの簡単な保存方法にプリファレンスというものがあります。
プリファレンスは、 キーと値の組み合わせでデータを保存する 方法です。1つのキーに1つの値を保存、シンプルですね。これはアプリの設定情報の保存などに向いているモノです。大量のデータや複雑なものはデータベースなど、別の保存方法を選びましょ。
アプリは複数のプリファレンスを持つことができます。また、使えるデータ型は以下の5つに限られます。
- boolean型
- float型
- int型
- long型
- String型
#Preferenceへのアクセス
まずは、プリファレンスにアクセスです。
contentクラスのgetSharedPreferences()
を用いて、 SharedPreferences
オブジェクトを取得です。
SharedPreferences prefer = getSharedOreferences("ファイル名", モード)
ここで、ファイル名は保存先のファイル名です。モードは3つあり、その中から適したものを選びましょう。
MODE | アクセス権 |
---|---|
MODE_PRIVATE | 他のアプリからアクセス不可 |
MODE_WPRLD_READABLE | 他のアプリから読み込み可能 |
MODE_WORLD_WRITEABLE | 他のアプリから書き込み可能 |
ただし、保存先のファイル名とアクティビティ名が同じ場合に限り、getPreferences() が使え、こちらは引数がモードのみでオッケーです。 |
|
#Preferenceの保存 | |
保存には Editor クラスを用います。 | |
edit() でオブジェクト取得、保存する値がint型の場合、putInt() でキーと値を保存、commit() で実際にファイルに書き込むという流れです。 |
Editor editor = pref.edit();
editor.putInt("id", userId);
editor.commit();
#Preferenceの読み込み
読み込みでは、SharedPreferenceseオブジェクトを取得後、値をgetInt()
等のメソッドでキーを与えて値を呼び出す流れです。
SharedPreferences pref = getSharedPreferences("user_data", MODE_PRIVATE);
int useId = pref.getInt("id", 10001);
getInt()
の第1引数はキー、第2引数は デフォルト値 となります。なにも保存してない場合に呼び出された時にその値を返します。
#Preferenceの削除
##特定のキーを削除
特定のキーと値のデータを削除する場合は、Editor
クラスのremove()
を用います。引数に、String型のキーを与えます。この場合も、次にcommit()
をすることで実際の削除が行われます。
##すべてのキーを削除
複数のデータを保存した後に、まとめて削除したい場合は、clear()
を用います。こちらは引数なさいで一気に。さようなら。