Android アプリ設定画面を作成するで作成したxmlレイアウトにCheckBoxPreferenceを追加します。
※キーはres/values/ids.xmlでname=checkbox,value=checkboxで設定しています。
※タイトル、要約はベタ書きしていますがres/values/strings.xmlで設定します。
PreferenceActivityを継承したアクティビティのonCreate()メソッドでは、addPreferencesFromResource()メソッドでxmlを読み込みます。
CheckBoxPreferenceのチェックの状態が変更されたイベントを処理するには
Context#findPreference()メソッドで、xmlレイアウトで設定したキーの値をもとにCheckBoxPreferenceインスタンスを取得します。
このCheckBoxPreferenceインスタンスにOnPreferenceChangeListenerをハンドルします。
package my.study.android; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.Preference.OnPreferenceChangeListener; public class MainActivity extends PreferenceActivity { // チェックボックスPreferenceの PreferenceChangeリスナー private OnPreferenceChangeListener checkBoxPreference_OnPreferenceChangeListener = new OnPreferenceChangeListener(){ @Override public boolean onPreferenceChange(Preference preference, Object newValue) { return checkBoxPreference_OnPreferenceChange(preference,newValue); }}; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //xmlレイアウトの読み込み this.addPreferencesFromResource(R.xml.pref); // キーを基に、チェックボックス設定のインスタンスを取得する CharSequence cs = getText(R.string.checkbox); CheckBoxPreference cbp = (CheckBoxPreference)findPreference(cs); // リスナーを設定する cbp.setOnPreferenceChangeListener(checkBoxPreference_OnPreferenceChangeListener); } private boolean checkBoxPreference_OnPreferenceChange(Preference preference, Object newValue){ String summary; if (((Boolean)newValue).booleanValue()) { summary = "Checked:true"; } else { summary = "Checked:false"; } // 要約を変更する ((CheckBoxPreference)preference).setSummary(summary); // 変更を適用するために true を返す return true; } }
【関連項目】
Android プリファレンスの編集
Android アプリ設定画面を作成する
Android アプリ設定画面を作成する CheckBoxPreference
Android アプリ設定画面を作成する EditTextPreference
Android アプリ設定画面を作成するRingtonePreference
Android アプリ設定画面を作成するListPreference
Android アプリ設定画面を作成する 依存関係を設定する
Android アプリ設定画面を作成する PreferenceScreen
Androidアプリ設定画面を作成する PreferenceScreen(別アクティビティ)
0 件のコメント:
コメントを投稿