Wie kann ich den Standardwert einer ListPreference erhalten, wie er im XML definiert ist?
-
21-12-2019 - |
Frage
Wie kann ich den Standardwert von a programmgesteuert abrufen? ListPreference
wie es im XML definiert ist?
Hier ist der Ausschnitt von mir 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" />
Ich habe die Dokumente durchgesehen, aber keine Möglichkeit gefunden, dies herauszufinden.Vielleicht habe ich es übersehen.
Lösung
Versuchen Sie für PreferenceActivity (veraltet mit Fragment):
ListPreference lp = (ListPreference) this.findPreference(this.getString(R.string.my_key));
lp.getValue();
Wo mein Schlüssel ist der dieser ListPreference zugewiesene Schlüsselwert.Notiz:Dieser Wert ist in definiert strings.xml
.Wenn Sie Ihren Schlüssel mit einer Literalzeichenfolge fest codiert haben, ersetzen Sie ihn mein Schlüssel mit der Zeichenfolge, die Sie für angegeben haben android:key
Etikett.In Ihrem Fall lauten die Codes also:
ListPreference lp = (ListPreference) this.findPreference("interval");
lp.getValue();
Andere Tipps
Versuchen Sie, zunächst den Standardwert festzulegen oder ihn auf den Standardwert zurückzusetzen?Schauen Sie sich trotzdem Folgendes an:
PreferenceManager.setDefaultValues(this, R.xml.your_pref_xml, false);
und das Dokumentation