【发布时间】:2026-02-06 01:25:01
【问题描述】:
关于在 Android 上实现多选(复选框)ListPreference 有什么想法吗?
我必须扩展 ListPreference 吗?
是否有任何已记录的类可以执行此操作?
谢谢
【问题讨论】:
标签: android android-preferences listpreference
关于在 Android 上实现多选(复选框)ListPreference 有什么想法吗?
我必须扩展 ListPreference 吗?
是否有任何已记录的类可以执行此操作?
谢谢
【问题讨论】:
标签: android android-preferences listpreference
多选 ListPreference 现在从 API 级别 11 (Honeycomb) 原生地与 Android 一起提供。 http://developer.android.com/reference/android/preference/MultiSelectListPreference.html
因为设备需要很长时间才能安装 Honeycomb 或更高版本,所以我建议人们坚持使用 http://blog.350nice.com/wp/archives/240 解决方案。
编辑:我认为此时此刻(最初发布此答案大约 3 年后)您最好现在使用本机版本,因为大多数设备都装有 Android 4 及更高版本。
【讨论】:
有一个github project 就是为了这个
【讨论】:
【讨论】:
好吧,http://blog.350nice.com/wp/archives/240 确实提供了一个解决方案,但更简单的解决方案是在父级内部实现一个子偏好屏幕,然后子偏好屏幕可以有多个复选框。我知道,这不是最好的解决方案,但可以完成工作。
例如 - 下面的preference.xml
<PreferenceCategory
android:title="Regular messages"
android:key="regular_messages">
<CheckBoxPreference
android:key="enable_regular_messages"
android:summary="Enable or disable regular messages"
android:title="Send regular messages"
android:defaultValue="true"
/>
<ListPreference
android:key="send_interval"
android:title="Send interval"
android:summary="Define how often you want to send messages"
android:defaultValue="60000"
android:entries="@array/send_interval"
android:entryValues="@array/send_interval_values"
android:dependency="enable_regular_messages"
/>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="Messages type"
android:key="messages_type"
android:summary="Select the type of messages to be sent"
android:dependency="enable_regular_messages">
<CheckBoxPreference
android:key="enable_status_messages"
android:summary="Enable or disable status messages"
android:title="Send status messages"
android:defaultValue="true"
/>
<CheckBoxPreference
android:key="enable_event_messages"
android:summary="Enable or disable event messages"
android:title="Send event messages"
android:defaultValue="true"
/>
<CheckBoxPreference
android:key="enable_critical_messages"
android:summary="Enable or disable critical messages"
android:title="Send critical messages"
android:defaultValue="true"
/>
</PreferenceScreen>
</PreferenceCategory>
【讨论】:
找到一个非常有用的链接: http://blog.350nice.com/wp/archives/240
【讨论】: