¿Cómo puedo obtener el valor predeterminado de ListPreference tal como se define en el XML?
-
21-12-2019 - |
Pregunta
¿Cómo puedo obtener mediante programación el valor predeterminado de un ListPreference
como se ha definido en el XML?
Aquí está el fragmento de mi ListPreference
:
<ListPreference
android:defaultValue="60"
android:entries="@array/interval_entries"
android:entryValues="@array/interval_values"
android:key="interval"
android:summary="@string/interval_summary"
android:title="@string/interval_title" />
Revisé los documentos pero no encontré una manera de obtener esto.Quizás lo he pasado por alto.
Solución
Para PreferenceActivity (obsoleto con Fragment), intente:
ListPreference lp = (ListPreference) this.findPreference(this.getString(R.string.my_key));
lp.getValue();
Dónde mi llave es el valor clave asignado a esta ListPreference.Nota:Este valor se define en strings.xml
.Si ha codificado su clave con una cadena literal, entonces sustitúyala mi llave con cualquier cuerda que hayas dado para el android:key
etiqueta.Entonces, en tu caso, los códigos serán:
ListPreference lp = (ListPreference) this.findPreference("interval");
lp.getValue();
Otros consejos
¿Está intentando establecer inicialmente el valor predeterminado o restablecerlo para predeterminado?En cualquier caso, eche un vistazo a:
PreferenceManager.setDefaultValues(this, R.xml.your_pref_xml, false);
y el Documentación