java.lang.Object ↳ android.preference.Preference ↳ android.preference.CheckBoxPreferenceを使います
checkbox の機能を持つ Preference の一つで
boolean型の値を SharedPreferences に保存します
というわけで,CheckBoxPreference をいじってみた
サンプルコード
- public class CheckBoxPreferenceSample extends PreferenceActivity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);
- // Key の設定
- checkBoxPreference.setKey(getString(R.string.key_checkbox_preference));
- // Title の設定
- checkBoxPreference.setTitle(R.string.title_checkbox_preference);
- // サマリーを設定
- //checkBoxPreference.setSummary(R.string.summary_checkbox_preference);
- // CheckBox が On の時のサマリーを設定
- checkBoxPreference.setSummaryOn("Summary On");
- // CheckBox が Off の時のサマリーを設定
- checkBoxPreference.setSummaryOff("Summary Off");
- // PrefenceScreen & PreferenceCategory
- PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);
- PreferenceCategory pc = new PreferenceCategory(this);
- // PreferenceCategory のタイトルを設定
- pc.setTitle(R.string.title_category);
- // PreferenceCategory を PreferenceScreen に追加
- ps.addPreference(pc);
- // Preference を PreferenceCategory に追加
- pc.addPreference(checkBoxPreference);
- // PreferenceScrren の設定
- setPreferenceScreen(ps);
- // Preference がチェックされているか
- checkBoxPreference.isChecked();
- // チェック状態を変更
- //checkBoxPreference.setChecked(true);
- // Preference が変更されたときに呼び出されるコールバックの登録
- checkBoxPreference.setOnPreferenceChangeListener(
- new OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(
- Preference preference,
- Object newValue) {
- // Preference が変更されたときの動作
- return true;
- }
- });
- }
- }
プログラムを実行すると...
こんな感じ!
XML で一括で作成することもできます
サンプルコード
- public class CheckBoxPreferenceSample extends PreferenceActivity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // XML で Preference を設定
- addPreferencesFromResource(R.xml.checkbox_preference);
- // CheckBoxPreference の取得
- CheckBoxPreference checkBoxPreferrence =
- (CheckBoxPreference) findPreference(
- getString(R.string.key_checkbox_preference));
- }
- }
checkbox_preference.xml
- <?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android">
- <PreferenceCategory
- android:title="@string/title_category">
- <CheckBoxPreference
- android:key="@string/key_checkbox_preference"
- android:title="@string/title_checkbox_preference"
- android:summaryOn="@string/summary_on_checkbox_preference"
- android:summaryOff="@string/summary_off_checkbox_preference" />
- <!-- android:summary="@string/summary_checkbox_preference" -->
- </PreferenceCategory>
- </PreferenceScreen>
参考サイト
http://developer.android.com/intl/ja/reference/android/preference/CheckBoxPreference.html
xmlとコードでの記述の両方が書かれているものを探していたので、とても役に立ちました。
返信削除