10

Android で複数選択 (チェック ボックス) の ListPreference を実装するアイデアはありますか?

ListPreference を拡張する必要がありますか?
これを行うためにすでに文書化されているクラスはありますか?

ありがとう

4

5 に答える 5

21

複数選択 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 以降が搭載されているため、ネイティブ バージョンを使用する方がよいと思います。

于 2011-02-23T13:39:58.533 に答える
10

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>

于 2011-11-21T23:34:07.503 に答える
8

非常に便利なリンクが見つかりました:http: //blog.350nice.com/wp/archives/240

于 2010-08-29T01:53:36.247 に答える