SharePreferenceの使用¶
ァ.sharePreferenceの紹介
ユーザー設定するパラメーターを保存するために、sharePreferenceを使用する。
ィ.sharePreferenceにファイルを作成するモードは4種類がある
- MODE_PRIVATE:デフォルトモード、このファイルを作成するアプリのみ使用可能
- MODE_APPEND:ファイルは存在する場合、データはファイルの末尾に添加する
- MODE_WORLD_READABL:作成するファイルの読むことを許可する
- MODE_WORLD_WRITEABLE:作成するファイルの書くことを許可する
ウ.sharePreferenceファイルを保存するパス(data/data/アプリのバケッジ名/shared_prefs/○○.xml)

ェ.書き込みデータ
ファイルにデータ保存するタイプは「Map」と同じだ、保存するデータの並びがない、
ただし、sharePreferenceは簡単タイプのデータのみに保存を提供しました。
1 2 3 4 5 6 | //PREF_FILE_NAMEはファイル名、MODE_WORLD_WRITEABLEはファイル作成モード SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, Context.MODE_WORLD_WRITEABLE); SharedPreferences.Editor editor = preferences.edit(); editor.putInt(key, value); //省略 editor.commit(); |
例:
1 2 3 4 | SharedPreferences preferences = getSharedPreferences("test", Context.MODE_WORLD_WRITEABLE); SharedPreferences.Editor editor = preferences.edit(); editor.putInt("storedInt", 10); editor.commit(); |
以下のファイルを作成する
test.xml
1 2 3 4 | <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <int name="storedInt">10</int> </map> |
ォ.読み込みデータ
1 2 | SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, Context.MODE_WORLD_READABLE) int storedPreference = preferences.getInt("storedInt", 0); |
ヵ.sharePreferenceファイルのモードは「MODE_WORLD_READABL」または「MODE_WORLD_WRITEABLE」の時、別のアプリはアクセス可能とする
以下のアクセス方法を使う
1 2 3 4 | //PREF_PACKAGE_NAMEはバッケージ名 Context otherAppsContext = createPackageContext(PREF_PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences(PREF_FILE_NAME, Context.MODE_WORLD_READABLE); int storedPreference = preferences.getInt("storedInt", 0); |