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とコードでの記述の両方が書かれているものを探していたので、とても役に立ちました。
返信削除