Androidではデータの保存方法として
- SQLite
- ファイル
- Preference
があり、それぞれには得意な用途があります。
例えば音のON/OFF、ゲームの難易度など増減の無いアプリの設定データにはPreferenceが向いています。
保存するキーに対応する値を保存、読み出しができます。
ひよこちゃんの玉入れ大会では音のOn/Offの設定にこのPreferenceを使用しています。
soundFlagは音のOn/Offを表すプロパティで型はbooleanです。
読み出し
SharedPreferences preferrences = getSharedPreferences("sound",MODE_PRIVATE );
soundFlag = preferrences.getBoolean("soundFlag",false);
この例では”soundFlag”をキーにして読み出します。getSharedPreferencesの第2引数、MODE_PRIVATEは他アプリからアクセスできないことを指定します。現在他モードは非推奨になっておりますのでMODE_PRIVATEを指定すれば良いでしょう。
preferrences.getBooleanで第一引数のキーの値を指定します。第二引数はキーが無かった場合のデフォルト値です。アプリのインストール後、初めて起動してこの値が無い時に使われます。
保存
SharedPreferences preferrences = getSharedPreferences("sound",MODE_PRIVATE );
SharedPreferences.Editor editor = preferrences.edit();
editor.putBoolean("soundFlag", soundFlag);
editor.commit();
保存は2段階になります。
一旦putBooleanでキーの値を設定したあと、commitで実際に保存します。
扱う型ごとにメソッドがあります。以下の表にまとめました。第一引数のStringはキーです。
| 型 | 読み出し | 保存 |
| boolean | getBoolean(String , boolean) | putBoolean(String , boolean) |
| int | getInt(String , int) | putInt(String , int) |
| long | getLong(String , long) | putLong(String , long) |
| float | getFloat(String , float) | putFloat(String , float) |
| String | getString(String , String) | putString(String , String) |
