ListPreference を使ってみた

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

List の Dialog を表示させる Preference の一つで
String型の値を SharedPreferences に保存します

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

サンプルコード
public class EditTextPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // addPreferencesFromResource(R.xml.edittext_preference);

    PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(this);

    PreferenceCategory pc = new PreferenceCategory(this);
    pc.setTitle(R.string.title_category);
    ps.addPreference(pc);

    EditTextPreference editTextPreference = new EditTextPreference(this);
    editTextPreference.setKey(getString(R.string.key_edittext_preference));
    editTextPreference.setTitle(R.string.title_edittext_preference);
    editTextPreference.setSummary(R.string.summary_edittext_preference);
    editTextPreference.setDialogTitle(R.string.dialog_title_edittext_preference);
    editTextPreference.setDialogMessage(R.string.dialog_message_edittext_preference);

    pc.addPreference(editTextPreference);
    setPreferenceScreen(ps);
  }
}

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



こんな感じ!

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

サンプルコード
public class ListPreferenceSample extends PreferenceActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // XML で Preference を設定
    addPreferencesFromResource(R.xml.list_preference);

    // ListPreference の取得
    ListPreference listPreferrence = 
      (ListPreference) findPreference(
          getString(R.string.key_list_preference));
  }  
}

List_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">
    <ListPreference 
      android:key="@string/key_list_preference"
      android:title="@string/title_list_preference" 
      android:summaryOn="@string/summary_list_preference"
      android:entries="@array/entries_list_preference" 
      android:entryValues="@array/entryvalues_list_preference"
      android:dialogTitle="@string/dialog_title_list_preference" />
  </PreferenceCategory>
</PreferenceScreen>


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

0 件のコメント:

コメントを投稿