14

我怎样才能创建一个ListPreferencewith checkbox?我知道如何使用ListPreference,但我需要在“重复”首选项的警报应用程序中进行多项选择。

像这样的截图:

复选框

4

4 回答 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);
于 2013-02-27T22:36:23.443 回答
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" />
于 2019-09-19T04:18:29.050 回答
1

该AFAIK没有内置偏好。ListPreference仅单选。

不过,您可以Preference通过扩展DialogPreference.

于 2010-11-03T08:25:15.203 回答
0

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

  <SwitchPreference
        android:defaultValue="true"
        android:key="example_switch"
        android:summary="@string/pref_description_social_recommendations"
        android:title="@string/pref_title_social_recommendations" />
于 2017-06-10T19:33:56.243 回答