Как сделать ListPreference с флажком

Как я могу создать ListPreference с checkbox? Я знаю, как использовать ListPreference, но мне нужен множественный выбор, как в приложении «Будильник» при выборе «повторить».

как этот скриншот:

флажки


person Tek Yin    schedule 03.11.2010    source источник


Ответы (4)


Начиная с 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);
person TouchBoarder    schedule 27.02.2013

Для этого AFAIK нет встроенного предпочтения. ListPreference доступен только для одиночного выбора.

Однако вы можете создать свой собственный класс Preference, расширив класс DialogPreference.

person CommonsWare    schedule 03.11.2010

Использование, 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" />
person Ask Shiwa    schedule 19.09.2019

Для логических значений вы должны использовать SwitchPreference следующим образом:

  <SwitchPreference
        android:defaultValue="true"
        android:key="example_switch"
        android:summary="@string/pref_description_social_recommendations"
        android:title="@string/pref_title_social_recommendations" />
person Raúl Salinas-Monteagudo    schedule 10.06.2017