Как сделать ListPreference с флажком
Как создать ListPreference
с помощью checkbox
?
Я знаю, как использовать ListPreference
, но мне нужно многократное выделение, например, в приложении Alarm при предпочтении "повторить".
как этот снимок экрана:
![checkboxes]()
Ответы
Ответ 1
Так как API 11 вы можете использовать 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);
Ответ 2
Для AFAIK нет встроенного предпочтения. ListPreference
только для одного выбора.
Вы можете создать свой собственный Preference
класс, расширяя DialogPreference
.
Ответ 3
Для булевых значений вы должны использовать SwitchPreference, как показано ниже:
<SwitchPreference
android:defaultValue="true"
android:key="example_switch"
android:summary="@string/pref_description_social_recommendations"
android:title="@string/pref_title_social_recommendations" />
Ответ 4
Использовать 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" />