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.