CheckBoxPreference は
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