studio preferencias preferencia pantalla nombre ejemplo crear configuracion cambiar archivos archivo android

preferencias - sharedpreferences android



Cómo iniciar una ListPreference a uno de sus valores (4)

Estoy tratando de establecer un DefaultValue en un elemento ListPreference.

Aquí hay una muestra de mi archivo preference.xml:

<ListPreference android:key="notification_delay" android:title="@string/settings_push_delay" android:entries="@array/settings_push_delay_human_value" android:entryValues="@array/settings_push_delay_phone_value" android:defaultValue="????"> </ListPreference>

Las dos matrices:

<string-array name="settings_push_delay_human_value"> <item>every 5 minutes</item> <item>every 10 minutes</item> <item>every 15 minutes</item> </string-array> <string-array name="settings_push_delay_phone_value"> <item>300</item> <item>600</item> <item>900</item> </string-array>

Cuando entro en la actividad de preferencia, no se selecciona ningún elemento de ListPreference. Intenté establecer un valor int como 1 en el "android: defaultValue" fied para seleccionar "10 minutos" pero no funciona.

<ListPreference android:key="notification_delay" android:title="@string/settings_push_delay" android:entries="@array/settings_push_delay_human_value" android:entryValues="@array/settings_push_delay_phone_value" android:defaultValue="1"> </ListPreference>

¿Alguna idea?


Además de la respuesta de Sven, debe llamar al método setDefaultValues ​​() en la actividad inicial. Esto establecerá una vez todos los valores predeterminados.

public class MainActivity extends Activity { protected void onCreate(final Bundle savedInstanceState) { // Set all default values once for this application // This must be done in the ''Main'' first activity PreferenceManager.setDefaultValues(this, R.xml.preferences, false); ... } }


Debes especificar el valor . Entonces, para obtener la primera entrada seleccionada por defecto, especifique defaultValue="300" en su ejemplo.


Si es un valor válido de la lista, vuelva a instalar la aplicación. Funcionará.


Sucedió estar en la misma situación. Especificando un valor predeterminado consistente. Pero gráficamente no fue seleccionado. Borré los datos de la aplicación. Y luego funcionó como se esperaba. Entonces, un clear puede ser útil en el momento del desarrollo al agregar nuevos elementos de XxxPreference.