Androidプログラミングの基礎[5] 共有プリファレンス [Android]
今回のテーマは「共有プリファレンス」です。
第5回: 共有プリファレンスと設定画面
Androidで利用可能なデータ保存方法の一つである共有プリファレンスについて説明する。
1.共有プリファレンスを使う
共有プリファレンス(SharedPreference)は、キーと値とのペアを保存、取得可能とする機能。
◎ SharedPreferenceインターフェイス
共有プリファレンスから設定を取得、変更すうためのインターフェース。
⇒ SharedPreferences.Editインターフェイス
設定の変更を保存する場合に、データが一貫した状態となるよう制御する。
◎ 共有プリファレンスの取得
共有プリファレンスを作成する2つのメソッド
⇒ Context#getSharedPreferencesメソッド
アプリケーション内外で共通して使用可能な共有プリファレンスを作成する。
⇒ Activity#getPreferencesメソッド
アクティビティ専用の共有プリファレンスを作成する。
◎ サンプル
画面で入力した項目を共有プリファレンスに保存する。
プロジェクト設定
・新規Androidアプリケーション
アプリケーション名 | PreferencesSample |
プロジェクト名 | PreferencesSample |
パッケージ名 | jp.andsys.android.preferencessample |
最小必須 SDK | API 8: Android 2.2 (Froyo) |
ターゲット SDK | API 18 |
次でコンパイル | API 10: Android 2.3.3 (Gingerbread) |
テーマ | None |
・プロジェクトの構成
ディフォルトのまま
・アイコンの属性
ディフォルトのまま
・アクティビティーの作成
Blank Activity
・Blank Activity
アクティビティ名 | PreferencesSampleActivity |
レイアウト名 | main |
ナビゲーション・タイプ | None |
strings.xml の編集
”PreferencesSample/res/values/strings.xml”
preferences_sample.xml の編集
”PreferencesSample/res/menu/preferences_sample.xml”
main.xml の編集
”PreferencesSample/res/layout/main.xml”
PreferencesSampleActivity.java の編集
”PreferencesSample/src/jp/andsys/android/preferencesample/PreferencesSampleActivity”
⇒ 共有プリファレンスの作成
SharedPreferences pref =
getSharedPreferences("PreferenceFile", MODE_PRIVATE);
PreferenceFile : 共有プリファレンス名
MODE_PRIVATE : 公開モード
⇒ 共有プリファレンスの読み込み
getString メソッド
機能 | 共有プリファレンスの設定項目をString型で取得する |
書式 | String getString( String key, String defValue ) |
引数 | key : 取り出したい設定項目の名前 defValue : デフォルト値 |
getBoolean メソッド
機能 | 共有プリファレンスの設定項目をBoolean型で取得する |
書式 | Boolean get( String key, boolean defValue ) |
getInt メソッド
機能 | 共有プリファレンスの設定項目をInt型で取得する |
書式 | Int getInt( String key, Int defValue ) |
⇒ 共有プリファレンスへの書き込み
putString メソッド
機能 | 共有プリファレンスにString型の値を登録する |
書式 | SharedPreferences.Editor putString( String key, String Value ) |
引数 | key : 設定する項目のキー名 defValue : 設定する値 |
putBoolean メソッド
機能 | 共有プリファレンスにBoolean型の値を登録する |
書式 | SharedPreferences.Editor putBoolean( String key, boolean Value ) |
putInt メソッド
機能 | 共有プリファレンスにInt型の値を登録する |
書式 | SharedPreferences.Editor putString( String key, Int Value ) |
⇒ プリファレンスのクリア
共有プリファレンスをクリアするには、clearメソッド使います。commitメソッドを続けて使わないと反映されない。
実行
実行画面でタイトル入力、チェックボックスON、リストを青にし「保存」ボタンを押す。
チェックボックスOFF、リストを緑にして「取得」ボタンを押す。
保存された値を読み込んで表示された。
2.デフォルトの共有プリファレンスを使う
アプリケーションにはデフォルトの共有プリファレンスが1つ用意されている。これの使い方について調査した、
◎ サンプルの修正
PreferencesSampleActivity.java の編集
”PreferencesSample/src/jp/andsys/android/preferencesample/PreferencesSampleActivity”
getDefaultSharedPreferences メソッド
機能 | デフォルトの共有プリファレンスを取得する |
書式 | SharedPreferences getDefaultSharedPreferences ( context context ) |
引数 | context : デフォルトの共有プリファレンスを取得するオブジェクト |
3.簡単に設定画面を作る
Android では簡単に設定画面を作る方法としてPreferencesActivityクラス(android.preference.PreferenceActivity)が用意されている。
◎ 設定画面のXML
設定画面のXMLはres/xml フォルダに格納する。
設定画面用のXML要素
要素 | 概説 |
PreferenceScreen | 設定画面の最上位要素 |
PreferenceCategory | 設定項目をカテゴリー分けする |
EditTextPreference | 文字列を入力するタイプの設定項目。タップすると文字列を入力するためのダイアログを表示する |
CheckBoxPreference | チェックボックスの設定項目 |
ListPreference | リストボックスの設定項目。タップすると選択ダイアログが開く |
主な属性
属性 | 解説 |
android:key | 共有プリファレンスを保存するときのキー |
android:title | 設定項目のタイトル。PreferenceCategory要素の場合は、設定項目のカテゴリーを表すヘッダーとして表示 |
android:summary | 設定項目の要約 |
◎ サンプル
設定画面を追加する。
⇒ 文字列リソースの追加
strings.xml の編集
”PreferencesSample/res/values/strings.xml”
⇒ 設定画面の作成
sample_preference.xml の作成 および 編集
”PreferencesSample/res/xml/sample_preference.xml”
Eclipseのメニューから「ファイル」、「新規」、「その他」と実行し、「Android」、「AndroidXMLファイル」を選択します。
設定項目 | 入力値/選択項目 |
リソース・タイプ | Preference |
プロジェクト | PreferencesSample |
ファイル | sample_preference |
ルート要素 | PreferenceScreen |
⇒ 設定画面用アクティビティの作成
Eclipseのメニューから「ファイル」、「新規」、「クラス」と実行し以下の内容でクラスを作成する。
SamplePreferenceActivity.java の作成 および 編集
”PreferencesSample/src/jp/andsys/android/preferencesample/SamplePreferenceActivity.java”
設定項目 | 入力値/選択項目 |
パッケージ | jp.andsys.android.preferencessample |
名前 | SamplePreferenceActivity |
スーパークラス | android.preference.PreferenceActivity |
インターフェース | (なし) |
⇒ マニフェストファイルの修正
AndroidManifest.xml の編集
”PreferencesSample/AndroidManifest.xml”
⇒ メインアクティビティの変更
設定画面を開くためのボタンの追加
main.xml の編集
”PreferencesSample/res/layout/main.xml”
PreferencesSampleActivity.java の編集
”PreferencesSample/src/jp/andsys/android/preferencesample/PreferencesSampleActivity”
⇒ 実行
「設定画面を開く」をタップして設定画面を開く。
設定画面が開いたら「タイトル」をクリックする。
「タイトル入力ダイアログ」が開いたら適当な文字を入力し「OK」ボタンを押す。
「色」をクリックする。
「色選択」ダイアログが開いたら、適当な色をクリックする。
「設定項目の入れ子」にもチェックし、戻るボタンで全画面に戻る。
「取得」ボタンを押すと、タイトルと色に値が入ることが確認できる。
以上で「共有プリファレンス」を終了します。
本記事は以下の参考書を元にしています。
コメント 0