How make a ListPreference with checkbox
13,353
Solution 1
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);
Solution 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" />
Solution 3
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
.
Author by
Tek Yin
Updated on July 15, 2022Comments
-
Tek Yin almost 2 years
How can I create a
ListPreference
withcheckbox
? I know how to useListPreference
, but I need multiple selection like in Alarm application on "repeat" preference.like this screenshot: