Preference は Androidアプリでデータを保存する方法のひとつ
データをキーと値の組み合わせで保存します
ファイルなどに保存するよりも非常に簡単にデータを保存できます
SharedPreferences
getSharedPreferences(String name, int mode);
まずインスタンスを取得する
SharedPreferences prefs = getSharedPreferences("myprefs", Context.MODE_PRIVATE);
| name | Preference 自体の名前 |
| mode | Activity.MODE_PRIVATE Activity.MODE_WORLD_READABLE Activity.MODE_WORLD_WRITEABLE |
保存された Preference は data/data/パッケージ名/shared_prefs の中に xmlファイルとして保存される
保存できるデータ形式
String、int、long、float、boolean、Set<String>
(Set の扱いは、 API Level 11 から可能)
保存する
SharedPreferences prefs = getSharedPreferences("myprefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("fruits", "Apple");
editor.apply();
保存されたデータは、XML 形式で以下のように保存される
<map>
<string name="fruits">Apple</string>
</map>
取得する
getString(String key, String defValue);
getInt(String key, int defValue);
getLong(String key, long defValue);
getBoolean(String key, boolean defValue);
getFloat(String key, float defValue);
haredPreferences prefs = getSharedPreferences("myprefs", Context.MODE_PRIVATE);
String fruits = prefs.getString("fruits", "");
保存先
SharedPreferencesを経由して保存したデータはXMLファイルで保存される。
保存先フォルダはdata/data/アプリのパッケージ名/shared_prefs/
PreferenceManager.getDefaultSharedPreferencesを使った場合、「アプリのパッケージ名_preferences.xml」というファイル名で保存される。
Activity#getSharedPreferencesを使った場合、「引数に指定したname.xml」をファイル名として保存される