コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Androidアプリ入門 No.41 Preferenceの基本 具体的な操作の解説

Preferenceの基本

具体的な操作の解説

単純なデータの保存では文字列を保存した。ここではその内容を確認する。まず、Activity#getPreferencesの定義を確認する。

public SharedPreferences getPreferences(int mode)

引数は以下。

引数 説明
mode Preferenceの操作モードの決定。

modeには以下が指定できる。

引数 説明
MODE_PRIVATE デフォルト。呼び出したアプリケーションでのみ読み書きできる。
MODE_WORLD_READABLE ほかのどのアプリケーションからでも読み込める。
MODE_WORLD_WRITEABLE ほかのどのアプリケーションからでも書き込める。

どのアプリケーションからでも読み書きできるようにするには、以下のようにビット演算の和をとる。

MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE

次に、データの読み込みについて解説する。getPreferencesで取得したSharedPreferencesでデータの読み込みが行える。データの読み込みはgetBoolean、getInt、getLong、getFloat、getStringのいずれかのメソッドで行う。引数は第1引数が読み込みのキー、第2引数がキーに対するデータがない場合のデフォルトの値を指定する。また、containsメソッドでデータが存在するかを確認できる。さらに格納されているすべてのデータをgetAllメソッドで、Mapの形で取得することもできる。
データを編集するには、editメソッドでEditorを取得する。editメソッドの定義は以下となる。

public abstract SharedPreferences.Editor edit()

取得したEditorのインスタンスに対して、putBoolean、putInt、putLong、putFloat、putStringのいずれかのメソッドでデータを格納する。それぞれ1番目の引数がデータ格納のキー、2番目の引数が格納する値となる。ただし、putXxxメソッドを実行するだけではデータの保管は完了せず、commitメソッドを呼び出す必要がある。commitされた段階でデータが完全に格納される。
データを削除するためにはremoveメソッドを用いる。removeメソッドは削除するデータのキーを指定してデータを削除する。removeメソッドもcommitされた段階でデータが削除される。
すべてのデータを削除する場合のみ、clearメソッドが使用できる。これに関してはcommitは不要でデータが完全に削除される。