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);
-
-
- checkBoxPreference.setKey(getString(R.string.key_checkbox_preference));
-
- checkBoxPreference.setTitle(R.string.title_checkbox_preference);
-
-
-
-
- checkBoxPreference.setSummaryOn("Summary On");
-
- checkBoxPreference.setSummaryOff("Summary Off");
-
-
- PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);
- PreferenceCategory pc = new PreferenceCategory(this);
-
- pc.setTitle(R.string.title_category);
-
- ps.addPreference(pc);
-
- pc.addPreference(checkBoxPreference);
-
- setPreferenceScreen(ps);
-
-
- checkBoxPreference.isChecked();
-
-
-
-
- checkBoxPreference.setOnPreferenceChangeListener(
- new OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(
- Preference preference,
- Object newValue) {
-
- return true;
- }
- });
- }
- }
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);
-
- addPreferencesFromResource(R.xml.checkbox_preference);
-
-
- CheckBoxPreference checkBoxPreferrence =
- (CheckBoxPreference) findPreference(
- getString(R.string.key_checkbox_preference));
- }
- }
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>
<?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