Preference-Dateien sind nicht storead in Projekt /res/xml/defaults.xml
Sie auf dem Gerät in Ihrer Bewerbungsmappe so etwas wie
/data/data/com.your.pkg/default.prefs
gespeichert sind, versuchen Sie den Dateinamen nicht gebe, wie Sie einige haben Probleme mit den Einstellungsdateien, wie diese OP hatte in dieser Frage: How do I get preferences to work in Android?
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(context);
Dann werden Sie wahrscheinlich
preferences.getString('weightPref', null);
Viele Anwendungen bieten kann eine Art und Weise Benutzereinstellungen auf die Einstellungen einer bestimmten Anwendung oder einer Aktivität zu erfassen abzufragen haben. Um dies zu unterstützen, bietet Android eine Reihe von APIs.
Präferenzen sind normalerweise Name-Wert-Paare. Sie können über verschiedene Aktivitäten in einer Anwendung als "Gemeinsame Einstellungen" gespeichert werden (beachten Sie, dass sie derzeit nicht für alle Prozesse freigegeben werden können). Oder es kann etwas sein, das für eine Aktivität gespeichert werden muss.
Gemeinsame Einstellungen: Die gemeinsamen Einstellungen können von allen Anwendungen (Aktivitäten, Dienste usw.) aus den Anwendungen verwendet werden.
Aktivitätseinstellungen: Diese Einstellungen können nur in der Aktivität verwendet werden und können nicht von anderen Komponenten der Anwendung verwendet werden.
Gemeinsame Vorlieben:
Die gemeinsamen Einstellungen werden mit Hilfe von getSharedPreferences
Methode der Context
Klasse verwaltet. Die Voreinstellungen werden in einer Standarddatei (1) gespeichert, oder Sie können einen Dateinamen (2) angeben, der verwendet werden soll, um auf die Voreinstellungen Bezug zu nehmen.
(1) Hier ist, wie Sie die Instanz erhalten, wenn Sie den Dateinamen angeben
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
ist die Betriebsart für die Einstellungen. Dies ist der Standardmodus und bedeutet, dass auf die erstellte Datei nur von der aufrufenden Anwendung zugegriffen wird. Andere unterstützte Modi sind MODE_WORLD_READABLE
und MODE_WORLD_WRITEABLE
.In MODE_WORLD_READABLE
kann eine andere Anwendung die erstellte Datei lesen, aber nicht ändern. Im Fall von MODE_WORLD_WRITEABLE
haben andere Anwendungen auch Schreibberechtigungen für die erstellte Datei.
(2) Der empfohlene Weg ist durch den Standard-Modus zu verwenden, ohne die Dateinamen
SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);
Schließlich zu spezifizieren, sobald Sie die Einstellungen Instanz haben, ist hier, wie Sie die gespeicherte abrufen Werte von den Vorlieben:
int storedPreference = preferences.getInt("storedInt", 0);
Um store in der Voreinstellungsdatei Werte SharedPreference.Editor
Objekt muss verwendet werden. Editor
ist die verschachtelte Schnittstelle der Klasse SharedPreference
.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor auch Methoden unterstützen wie remove()
und clear()
den Präferenzwert aus der Datei zu löschen.
Aktivität Vorlieben:
Die gemeinsamen Präferenzen können durch andere Anwendungskomponenten verwendet werden. Aber wenn Sie die Voreinstellungen nicht mit anderen Komponenten teilen müssen und möchten, dass Aktivitäten private Präferenzen haben. Sie können dies mit Hilfe der Methode getPreferences()
der Aktivität tun. Die Methode getPreference
verwendet die Methode getSharedPreferences()
mit dem Namen der Aktivitätsklasse für den Namen der Voreinstellungsdatei.
Im Folgenden finden Sie den Code Vorlieben zu bekommen
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Die Codewerte zu speichern, ist auch bei gemeinsamen Vorlieben gleich.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Sie können auch andere Methoden wie Speichern des Aktivitätsstatus in der Datenbank verwenden. Hinweis: Android enthält auch ein Paket mit der Bezeichnung android.preference
. Das Paket definiert Klassen zum Implementieren von UI für Anwendungseinstellungen.
Um einige weitere Beispiele zu sehen, überprüfen Android Data Storage Post auf der Entwickler-Website.
Bitte [verwenden Sie nicht „hier“ oder „hier klicken“ als Link-Text] zu definieren, (http://www.w3.org/QA/Tips/noClickHere.html). Vielen Dank! –
Was ich tun möchte, ist für eine Seite eine XML-Datei für Benutzereinstellungen mit Standardwerten in res/xml/preferences.xml zu definieren, wie Sie bereits erwähnt haben: PreferenceManager.getDefaultSharedPreferences (context); Auf der anderen Seite möchte ich in einer anderen Datei eine andere Art von Einstellungen für die Konfiguration meiner App definieren (Benutzer können diese Konfigurationseinstellungen nicht verwalten, nur der Code meiner App kann sie lesen). Meine Frage ist, wo kann ich die Standardwerte für diese Konfigurationseinstellungen angeben, wenn ich bereits eine Datei für Benutzereinstellungen (res/xml/preferences.xml) habe. – whynot
Joachim macht einen guten Punkt. Fest. – MatrixFrog