Wie erhalten Sie den Standardwert einer Android-Voreinstellung in XML? Ich möchte nicht die Definition des Standardwerts im Code und in den XML-Einstellungen wiederholen.Standardwert der Android-Voreinstellung
Antwort
Sie können Standardwert in Ressourcen (/values/bool.xml
) definieren unter res/values
, um ganzzahlige Konstanten zu speichern.
In prefereces.xml
Referenz "@integer/default_brightness"
In Code context.getResources().getInteger(R.integer.default_brightness)
Schöne Methode, dies zu tun. Danke für das Teilen! – pilcrowpipe
Genau das habe ich gesucht, danke. Ein weiterer Hinweis: Definieren Sie die Ressourcen nicht in strings.xml, sondern in einer separaten Datei (z. B. constants.xml), um eine Lokalisierung zu vermeiden. – schnatterer
@schnatterer: Wenn Sie die Strings in eine andere Datei verschieben, vermeiden Sie eine Lokalisierung. Der Dateiname 'strings.xml' ist nur eine Konvention. Jede Ressource kann lokalisiert werden, indem sie in den richtigen Unterordner 'res /' gestellt wird. Es ist wahrscheinlich eine gute Idee, die Standardeinstellungen in eine separate Ressourcendatei zu platzieren. –
Zuerst müssen Sie Standardwerte in Ihrer XML-Voreinstellungsdatei definieren. Dann können Sie die Einstellungen mit den Standardwerten in der Hauptaktivität bevölkern durch den Aufruf:
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Wenn Sie eine gewisse Präferenz abrufen müssen nur anrufen:
int value = prefs.getInt("key", null);
Da Ihre Präferenzen bevölkert sind, werden Sie nicht erhalten null
Wert.
<resources>
<bool name="mypreference_default">true</bool>
</resources>
Verwenden Sie den Wert im preferences.xml
:
<CheckBoxPreference
android:defaultValue="@bool/mypreference_default"
android:key="mypreference"
android:title="@string/mypreference_title" />
Dann nutzen Sie in den Code ein:
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
Dies funktioniert immer noch nicht gegen die mögliche Situation zu schützen, wo jemand die Linie von der Präferenz entfernt unten XML und vergisst, den Java-Code zu aktualisieren, der es anfordert. In diesem Fall kompiliert die Anwendung weiterhin, aber Sie erhalten eine NullPointerException. – idolize
Ja, das stimmt, aber dann sollte ein Funktionstest geschrieben werden, um zu testen, ob alle benötigten Einstellungen aus XML abgerufen werden. – pixel
das funktionierte überhaupt nicht für mich. Die Standardwerte wurden nach dem Aufruf dieser Methode nicht festgelegt. – moonlightcheese
erstellen integer.xml
- 1. Erstellen eines Array mit einem Standardwert, aber der Standardwert ist
- 2. Der Standardwert von Booleschen ändern
- 3. Wie lautet der GOMAXPROCS-Standardwert
- 4. Standardwert der Variablen in PHP?
- 5. Standardwert Speicher
- 6. Was ist der Standardwert für FACELETS_REFRESH_PERIOD?
- 7. Standardwert des Dropdown-Menüs auf der Webseite
- 8. Was ist der Standardwert für Guid?
- 9. Der Mongoid-Standardbereich überschreibt den Standardwert. Warum?
- 10. Standardwert von Enum in der Klasse erklärt
- 11. Laravel Migrationen ändern den Standardwert der Spalte
- 12. Klassenvariable als Standardwert der Klassenmethode zuweisen Argument
- 13. Was ist der Standardwert eines Iterators?
- 14. Ist der Standardwert eines int * NULL?
- 15. Warum ist der Standardwert im Storyboard ausgegraut?
- 16. Textarea Standardwert
- 17. Auswahlfeld Standardwert
- 18. MySQL Columns Standardwert ist der Standardwert von dem Primärschlüssel einer anderen Tabelle
- 19. Ändern der Standardwert der Sitzung Variable Zeitüberschreitung in asp.net mvc
- 20. Wie wird der Standardwert in der yii-Dropdownliste ausgewählt?
- 21. Was ist der Standardwert der Hibernate-Eigenschaft hibernate.jdbc.factory_class?
- 22. Den Standardwert der Eigenschaft mit Hilfe der PHP-Reflektion erhalten
- 23. Allgemein Typ Standardwert
- 24. bash Standardwert zuweisen
- 25. Standardwert in clojure Karten
- 26. Standardwert des dynamischen Typs?
- 27. Standardwert für Textbereich
- 28. MVC - Standardwert in Feld
- 29. Zugriffsfeld - Standardwert + Grenzwertnummern
- 30. Standardwert eines Select-Tags
Ihre xml-Einstellungsdatei zu veröffentlichen, meinst du ein PreferenceScreen – Jorgesys