CheckBoxPreference を使ってみた

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

1 件のコメント:

  1. xmlとコードでの記述の両方が書かれているものを探していたので、とても役に立ちました。

    返信削除