CheckBoxPreference を使ってみた

CheckBoxPreference は
java.lang.Object
  ↳ android.preference.Preference
    ↳ android.preference.CheckBoxPreference
を使います

checkbox の機能を持つ Preference の一つで
boolean型の値を SharedPreferences に保存します

というわけで,CheckBoxPreference をいじってみた

サンプルコード
  1. public class CheckBoxPreferenceSample extends PreferenceActivity {  
  2.   @Override  
  3.   public void onCreate(Bundle savedInstanceState) {  
  4.     super.onCreate(savedInstanceState);  
  5.       
  6.     CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);  
  7.   
  8.     // Key の設定  
  9.     checkBoxPreference.setKey(getString(R.string.key_checkbox_preference));  
  10.     // Title の設定  
  11.     checkBoxPreference.setTitle(R.string.title_checkbox_preference);  
  12.   
  13.     // サマリーを設定  
  14.     //checkBoxPreference.setSummary(R.string.summary_checkbox_preference);  
  15.     // CheckBox が On の時のサマリーを設定  
  16.     checkBoxPreference.setSummaryOn("Summary On");  
  17.     // CheckBox が Off の時のサマリーを設定  
  18.     checkBoxPreference.setSummaryOff("Summary Off");  
  19.   
  20.     // PrefenceScreen & PreferenceCategory  
  21.     PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);  
  22.     PreferenceCategory pc = new PreferenceCategory(this);  
  23.     // PreferenceCategory のタイトルを設定  
  24.     pc.setTitle(R.string.title_category);  
  25.     // PreferenceCategory を PreferenceScreen に追加  
  26.     ps.addPreference(pc);  
  27.     // Preference を PreferenceCategory に追加  
  28.     pc.addPreference(checkBoxPreference);  
  29.     // PreferenceScrren の設定  
  30.     setPreferenceScreen(ps);  
  31.   
  32.     // Preference がチェックされているか  
  33.     checkBoxPreference.isChecked();  
  34.     // チェック状態を変更  
  35.     //checkBoxPreference.setChecked(true);  
  36.   
  37.     // Preference が変更されたときに呼び出されるコールバックの登録  
  38.     checkBoxPreference.setOnPreferenceChangeListener(  
  39.         new OnPreferenceChangeListener() {  
  40.           @Override  
  41.           public boolean onPreferenceChange(  
  42.               Preference preference,  
  43.               Object newValue) {  
  44.             // Preference が変更されたときの動作  
  45.             return true;  
  46.           }      
  47.         });  
  48.   }    
  49. }  

プログラムを実行すると...



こんな感じ!

XML で一括で作成することもできます

サンプルコード
  1. public class CheckBoxPreferenceSample extends PreferenceActivity {  
  2.   @Override  
  3.   public void onCreate(Bundle savedInstanceState) {  
  4.     super.onCreate(savedInstanceState);  
  5.     // XML で Preference を設定  
  6.     addPreferencesFromResource(R.xml.checkbox_preference);  
  7.   
  8.     // CheckBoxPreference の取得  
  9.     CheckBoxPreference checkBoxPreferrence =   
  10.       (CheckBoxPreference) findPreference(  
  11.           getString(R.string.key_checkbox_preference));  
  12.   }    
  13. }  

checkbox_preference.xml
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen   
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   <PreferenceCategory   
  5.     android:title="@string/title_category">  
  6.     <CheckBoxPreference   
  7.       android:key="@string/key_checkbox_preference"  
  8.       android:title="@string/title_checkbox_preference"   
  9.       android:summaryOn="@string/summary_on_checkbox_preference"  
  10.       android:summaryOff="@string/summary_off_checkbox_preference" />  
  11.       <!-- android:summary="@string/summary_checkbox_preference" -->  
  12.   </PreferenceCategory>  
  13. </PreferenceScreen>  


参考サイト
http://developer.android.com/intl/ja/reference/android/preference/CheckBoxPreference.html

1 件のコメント:

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

    返信削除