13

How can I create a ListPreference with checkbox? I know how to use ListPreference, but I need multiple selection like in Alarm application on "repeat" preference.

like this screenshot:

checkboxes

StarsSky
  • 6,721
  • 6
  • 38
  • 63
Tek Yin
  • 3,011
  • 3
  • 25
  • 42

4 Answers4

21

Since API 11 you can use MultiSelectListPreference

String[] selections = {"selection1","Selection2"};
Set<String> selectionSet = new HashSet<String>();
selectionSet.addAll(Arrays.asList(selections));

MultiSelectListPreference multiSelectPref = new MultiSelectListPreference(this);
        multiSelectPref.setKey("multi_pref");
        multiSelectPref.setTitle("Multi Select List  Preference");
        multiSelectPref.setEntries(selections);
        multiSelectPref.setEntryValues(selections);
        multiSelectPref.setDefaultValue(selectionSet);
        getPreferenceScreen().addPreference(multiSelectPref);
TouchBoarder
  • 6,422
  • 2
  • 52
  • 60
2

Use, MultiSelectListPreference

<MultiSelectListPreference
        app:defaultValue="@array/watermark_entries_view"
        app:dialogTitle="Select Watermark Type"
        app:entries="@array/watermark_entries_view"
        app:entryValues="@array/watermark_entries_values"
        app:key="mode_repeat"
        app:summary="Enable Watermark"
        app:title="Watermark" />
Amal
  • 261
  • 4
  • 9
1

There is no built-in preference for that AFAIK. ListPreference is single-select only.

You could create your own custom Preference class, though, by extending DialogPreference.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
0

For boolean values you must use a SwitchPreference, as follows:

  <SwitchPreference
        android:defaultValue="true"
        android:key="example_switch"
        android:summary="@string/pref_description_social_recommendations"
        android:title="@string/pref_title_social_recommendations" />
Raúl Salinas-Monteagudo
  • 3,412
  • 1
  • 24
  • 22