如何使用复选框创建一个ListPreference

13

我如何使用 ListPreference 创建具有 checkbox 的多选列表? 我知道如何使用 ListPreference,但我需要像“重复”首选项中的闹钟应用程序一样进行多个选择。

类似于这个截图:

checkboxes

4个回答

21
自 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

使用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" />

1

据我所知,没有内置的偏好设置。 ListPreference 仅支持单选。

不过,您可以通过扩展 DialogPreference 来创建自己的自定义 Preference 类。


0

对于布尔值,您必须使用SwitchPreference,如下所示:

  <SwitchPreference
        android:defaultValue="true"
        android:key="example_switch"
        android:summary="@string/pref_description_social_recommendations"
        android:title="@string/pref_title_social_recommendations" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接