2010-08-29 13 views

Respuesta

8

encontrado un enlace muy útil: http://blog.350nice.com/wp/archives/240

+1

El enlace está muerto. ¿Se puede encontrar el contenido en alguna parte? – Felix

+0

encontró esta página en caché de google si es de ayuda: http://webcache.googleusercontent.com/search?q=cache:http://blog.350nice.com/wp/archives/240 – shem

+0

No solo agregue vínculos como respuestas ; los enlaces pueden caducar En su lugar, agregue un bloque importante del enlace junto con él. – Ishaan

20

Multi seleccione ListPreference ahora viene con Android de forma nativa desde el nivel del API 11 (Honeycomb). http://developer.android.com/reference/android/preference/MultiSelectListPreference.html

Debido a que pasará bastante tiempo antes de que los dispositivos tengan Honeycomb o se instalen más adelante, recomendaría a las personas que se adhieran a la solución http://blog.350nice.com/wp/archives/240.

EDIT: Creo que en este momento (casi 3 años después de que esta respuesta se publicó originalmente) es mejor utilizar la versión nativa ahora ya que la mayoría de los dispositivos tienen Android 4 en adelante.

+0

¡Gracias! Esta es la mejor respuesta. – Lewisou

+1

Muchos desarrolladores, incluido yo mismo, preferirían no bloquear un segmento aún significativo de usuarios al aumentar nuestra versión minSdk de 10 a 11. Lo que no entiendo es cuál es la necesidad de todas estas soluciones, los proyectos de github publicados en otras respuestas , etc.? ¿No nos olvidamos que Android es de código abierto? Si desea apuntar a la API 10+, simplemente tome el código fuente real para MultiSelectListPreference y termine con esto, p. https://android.googlesource.com/platform/frameworks/base/+/cd92588/core/java/android/preference/MultiSelectListPreference.java –

9

Bueno, http://blog.350nice.com/wp/archives/240 proporciona una solución, pero una solución más simple sería simplemente implementar una pantalla de preferencia de niño dentro del elemento primario, y luego la pantalla de preferencia de elemento secundario puede tener varias casillas de verificación. Lo sé, no es la mejor solución, pero hace el trabajo.

Por ejemplo - la preference.xml A continuación

<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> 

+0

De hecho, hace el trabajo :) –

Cuestiones relacionadas