プリファレンス
http://android.roof-balcony.com/shori/strage/preference/
まずは保存時の処理の説明です。
保存するデータの型は、boolean型、float型、int型、long型、String型が使えます。
String型のデータを保存するときは、以下のような感じになります。
1 |
SharedPreferences pref = getSharedPreferences(“pref”,MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE); Editor e = pref.edit(); e.putString(“key”, “value”); e.commit(); |
まずは、getSharedPreferences()メソッドでSharedPreferences型インスタンスを取得します。
getSharedPreferences()の第一引数は、プリファレンスの名前です。
プリファレンス自体に名前を付けるという事です。
getSharedPreferences()の第二引数は共有モードです。以下の値を指定できます。
- MODE_WORLD_READABLE:他のアプリから読み取り可能
- MODE_WORLD_WRITEABLE:他のアプリから書込み可能
- MODE_PRIVATE:そのアプリケーションだけで使用可能
他のアプリから読み取りも書込みも可能にするには、サンプルコードのように論理和で結合させておきます。
次は、SharedPreferencesのedit()メソッドを使って、Editor型インスタンスを取得します。
このEditorインスタンスを通じて、プリファレンスへのデータの書込みを行います。
最後に、Editorのcommit()メソッドを行う事で、実際に保存されます。
PreferenceActivity
http://y-anz-m.blogspot.com/2009/11/android.html
作成した画面の設定項目値とPreferences に自動に同期してくれる。
画面のXML
1. res の下に xml という名前のフォルダを作成
2. res/xml に pref.xml を作成
3. pref.xml に画面の配置を定義
pref.xml の例
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Libraroid Setting"> <CheckBoxPreference android:key="checkbox_value" android:title="Setting1" android:summary="sample of checkbox setting" /> <EditTextPreference android:key="edittext_value" android:title="Setting2" android:summary="sample of edittext setting" android:dialogTitle="Setting edittext" android:dialogMessage="please set values" /> <ListPreference android:key="list_value" android:title="Setting3" android:summary="sample of list setting" android:entries="@array/search_condition" android:entryValues="@array/search_condition_value" /> <RingtonePreference android:key="ringtone_value" android:title="Setting4" android:summary="sample of ringtone setting" android:showDefault="true" android:showSilent="true" android:ringtoneType="ringtone" /> </PreferenceCategory> </PreferenceScreen>
各設定タイプのタグには
- CheckBoxPreference
- DialogPreference
- EditTextPreference
- ListPreference
- RingtonePreference
パラメータ
android:defaultValue
初期値
android:dependency
この Preference が依存する他の Preference の key
android:enabled
この Preference が有効かどうか
android:key
システムに保存するときの key
android:layout
PeferenceActivity 画面内でのこの Preference の layout
android:order
Prefernce の順番、小さい方が最初
android:persistent
shared preferences に保存するかどうか
android:selectable
選択できるかどうか
android:shouldDisableView
この Preference が無効のとき、表示を無効にするかどうか
android:summary
タイトルの下の文字列、説明を書いたり、選択値を表示する
android:title
タイトル
Activity
1 |
import android.os.Bundle; import android.preference.PreferenceActivity; public class PreferenceActivityExample extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref); } } |
PreferenceActivity クラスを継承して、setContentView の代わりに
addPreferencesFromResource で pref.xml を読み込む
イベントをキャッチする
http://mitukiii.jp/category/programming/java/
onPreferenceTreeClickメソッドをオーバーライドして、各項目のクリックイベントを取得する。
保存された設定を呼び出す
1 |
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); String account = sharedPreferences.getString("account", ""); String password = sharedPreferences.getString("password", ""); |
設定にコードから書き込む
1 |
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); Editor ed = sp.edit(); ed.putString("account", account); ed.putString("password", password); ed.commit(); |
コミットで書込を確定する
[通知用URL]
Tweet
最終更新時間:2011年10月27日 21時29分20秒