在Android上多选ListPreference

时间:2010-08-29 00:21:38

标签: android android-preferences listpreference

在Android上实现多选(Checkset)ListPreference的想法吗?

我是否必须扩展ListPreference?
是否有任何课程已经记录下来?

由于

5 个答案:

答案 0 :(得分:21)

Multi select 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及以上版本。

答案 1 :(得分:10)

嗯,http://blog.350nice.com/wp/archives/240确实提供了解决方案,但更简单的解决方案是在父级内部实现子优先级屏幕,然后子优先级屏幕可以有多个复选框。我知道,这不是最好的解决方案,但可以完成工作。

例如 - Below 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>

答案 2 :(得分:8)

找到了一个非常有用的链接: http://blog.350nice.com/wp/archives/240

答案 3 :(得分:4)

答案 4 :(得分:1)

这个

只有一个github project