Ich möchte einen Zeitwert speichern und muss ihn abrufen und bearbeiten. Wie kann ich SharedPreferences
das machen?
android
sharedpreferences
Muhammad Maqsoodur Rehman
quelle
quelle
Antworten:
Verwenden Sie in Ihrer Aktivität die folgende Methode, um gemeinsame Einstellungen zu erhalten:
So lesen Sie Einstellungen:
Einstellungen bearbeiten und speichern
Das Beispielverzeichnis des Android SDK enthält ein Beispiel für das Abrufen und Speichern gemeinsamer Einstellungen. Es befindet sich in:
Bearbeiten ==>
Mir ist aufgefallen, dass es wichtig ist, auch hier einen Unterschied zwischen
commit()
und zu schreibenapply()
.commit()
Rückgabe,true
wenn der Wert andernfalls erfolgreich gespeichert wurdefalse
. Es speichert Werte synchron in SharedPreferences .apply()
wurde in 2.3 hinzugefügt und gibt weder bei Erfolg noch bei Misserfolg einen Wert zurück. Es speichert Werte sofort in SharedPreferences, startet jedoch eine asynchrone Festschreibung . Weitere Details finden Sie hier .quelle
this.getSharedPreferences
gibt mir den folgenden Fehler:The method getSharedPreferences(String, int) is undefined for the type MyActivity
So speichern Sie Werte in gemeinsamen Einstellungen:
So rufen Sie Werte aus freigegebenen Einstellungen ab:
quelle
Map<DateTime, Integer>
?Zum Bearbeiten von Daten aus
sharedpreference
Zum Abrufen von Daten aus
sharedpreference
Bearbeiten
Ich habe dieses Snippet aus dem API-Demo-Beispiel genommen. Es hatte dort eine
EditText
Kiste. Diescontext
ist nicht erforderlich. Ich kommentiere das gleiche.quelle
Schreiben :
Lesen :
quelle
Einfachster Weg:
Speichern:
So rufen Sie ab:
quelle
Einstellen von Werten in den Einstellungen:
Daten von Präferenz abrufen:
Mehr Info:
Gemeinsame Einstellungen verwenden
Gemeinsame Einstellungen
quelle
Singleton Shared Preferences-Klasse. es kann in Zukunft für andere helfen.
Rufen Sie einfach
SharedPref.init()
aufMainActivity
einmalDaten schreiben
Daten lesen
quelle
Informationen speichern
So setzen Sie Ihre Einstellungen zurück
quelle
Wenn Sie mit anderen Entwicklern in Ihrem Team eine große Anwendung erstellen und beabsichtigen, alles ohne verstreuten Code oder andere SharedPreferences-Instanzen gut zu organisieren, können Sie Folgendes tun:
In Ihrer Aktivität können Sie SharedPreferences auf diese Weise speichern
Auf diese Weise können Sie Ihre SharedPreferences abrufen
quelle
In jeder Anwendung gibt es Standardeinstellungen, auf die über die
PreferenceManager
Instanz und die zugehörige Methode zugegriffen werden kanngetDefaultSharedPreferences(Context)
.Mit der
SharedPreference
Instanz kann man den int-Wert einer beliebigen Präferenz mit getInt (String key, int defVal) abrufen . Die Präferenz, die uns in diesem Fall interessiert, ist Zähler.In unserem Fall können wir die
SharedPreference
Instanz in unserem Fall mit edit () ändern und verwenden.putInt(String key, int newVal)
Wir haben die Anzahl für unsere Anwendung erhöht, die über die Anwendung hinaus besteht und entsprechend angezeigt wird.Um dies weiter zu demonstrieren, starten Sie neu und Sie wenden die Anwendung erneut an. Sie werden feststellen, dass sich die Anzahl jedes Mal erhöht, wenn Sie die Anwendung neu starten.
PreferencesDemo.java
Code:
main.xml
Code:
quelle
Einfache Lösung zum Speichern des Anmeldewerts in
SharedPreferences
.Sie können die
MainActivity
Klasse oder eine andere Klasse erweitern, in der Sie den "Wert von etwas speichern, das Sie behalten möchten". Setzen Sie dies in Autoren- und Leserklassen ein:Hier
InputClass
ist die Eingabe bzw.OutputClass
die Ausgabeklasse.Jetzt können Sie es woanders verwenden, wie in anderen Klassen. Das Folgende ist
OutputClass
.quelle
In SharedPreferences speichern
In SharedPreferences abrufen
Hinweis: "temp" ist der Name der gemeinsam genutzten Einstellungen und "name" ist der Eingabewert. Wenn der Wert nicht beendet wird, wird null zurückgegeben
quelle
Bearbeiten
Lesen
quelle
Die Grundidee von SharedPreferences besteht darin, Dinge in einer XML-Datei zu speichern.
Deklarieren Sie Ihren XML-Dateipfad. (Wenn Sie diese Datei nicht haben, erstellt Android sie. Wenn Sie diese Datei haben, greift Android darauf zu.)
Schreiben Sie einen Wert in die freigegebenen Einstellungen
Dies
preference_file_key
ist der Name der freigegebenen Einstellungsdateien. Und das1010101
ist der Wert, den Sie speichern müssen.apply()
Endlich sollen die Änderungen gespeichert werden. Wenn Sie eine Fehlermeldung erhaltenapply()
, ändern Sie diese incommit()
. Also dieser alternative Satz istLesen Sie aus den freigegebenen Einstellungen
lsp
wird sein,-1
wennpreference_file_key
hat keinen Wert. Wenn 'priority_file_key' einen Wert hat, wird der Wert davon zurückgegeben.Der gesamte Code zum Schreiben ist
Der Code zum Lesen ist
quelle
Mit dieser Methode können Sie Wert sparen:
Mit dieser Methode können Sie Werte aus SharedPreferences abrufen:
Hier
prefKey
ist der Schlüssel, mit dem Sie den bestimmten Wert gespeichert haben. Vielen Dank.quelle
Hier
mSaved
kann jeder seinTextView
oderEditText
von wo wir einen String extrahieren können. Sie können einfach eine Zeichenfolge angeben. Hier ist Text der Schlüssel, der den vommSaved
(TextView
oderEditText
) erhaltenen Wert enthält .Es ist auch nicht erforderlich, die Voreinstellungsdatei unter dem Paketnamen "com.example.app" zu speichern. Sie können Ihren eigenen bevorzugten Namen angeben. Hoffe das hilft !
quelle
Es gibt viele Möglichkeiten, wie SharedPreferences verwendet werden können . Ich habe hier ein Demo-Projekt gemacht . Der wichtigste Punkt im Beispiel ist die Verwendung von ApplicationContext und einem einzelnen gemeinsam genutzten Präferenzobjekt . Dies zeigt, wie SharedPreferences mit folgenden Funktionen verwendet werden: -
Anwendungsbeispiel wie folgt: -
Hier erhalten Sie den Quellcode. Detaillierte APIs finden Sie hier auf developer.android.com
quelle
Best Practice aller Zeiten
Erstellen Sie eine mit PreferenceManager benannte Schnittstelle :
Verwendung mit Aktivität / Fragment :
Hinweis: Ersetzen Sie Ihren Schlüssel von SharedPreference durch SP_TITLE .
Beispiele:
String in Shareperence speichern :
String von Shareperence abrufen :
Hoffe das wird dir helfen.
quelle
So speichern Sie Werte in gemeinsamen Einstellungen:
So rufen Sie Werte aus freigegebenen Einstellungen ab:
quelle
speichern
zurückerhalten:
quelle
Ich schreibe eine Hilfsklasse für gemeinsame Einstellungen:
quelle
Verwenden Sie dieses Beispiel einfach und klar und geprüft
quelle
Mit dieser einfachen Bibliothek können Sie SharedPreferences folgendermaßen aufrufen.
quelle
Ich wollte hier hinzufügen, dass die meisten Snippets für diese Frage bei Verwendung von SharedPreferences so etwas wie MODE_PRIVATE haben. Nun, MODE_PRIVATE bedeutet, dass alles, was Sie in diese gemeinsame Einstellung schreiben, nur von Ihrer Anwendung gelesen werden kann.
Unabhängig davon, welchen Schlüssel Sie an die Methode getSharedPreferences () übergeben, erstellt Android eine Datei mit diesem Namen und speichert die Voreinstellungsdaten darin. Denken Sie auch daran, dass getSharedPreferences () verwendet werden soll, wenn Sie mehrere Einstellungsdateien für Ihre Anwendung haben möchten. Wenn Sie eine einzelne Einstellungsdatei verwenden und alle Schlüssel-Wert-Paare darin speichern möchten, verwenden Sie die Methode getSharedPreference (). Es ist seltsam, warum jeder (einschließlich ich) einfach getSharedPreferences () verwendet, ohne den Unterschied zwischen den beiden oben genannten zu verstehen.
Das folgende Video-Tutorial soll https://www.youtube.com/watch?v=2PcAQ1NBy98 helfen
quelle
Einfach und problemlos :: Bibliothek "Android-SharedPreferences-Helper"
Besser spät als nie: Ich habe die Bibliothek "Android-SharedPreferences-Helper" erstellt , um die Komplexität und den Aufwand bei der Verwendung zu verringern
SharedPreferences
. Es bietet auch einige erweiterte Funktionen. Einige Dinge, die es bietet, sind wie folgt:Ziemlich Einfach! Im Gegensatz zur Standardmethode (bei Verwendung der SharedPreferences-Klasse) müssen Sie NICHT aufrufen
.edit()
und.commit()
immer Zeit.Das ist es! Ihre Werte werden in den gemeinsamen Einstellungen gespeichert.
Wieder nur ein einfacher Methodenaufruf mit dem Schlüsselnamen.
Überprüfen Sie die Details zu erweiterten Funktionen, Verwendungs- und Installationsanweisungen usw. auf der GitHub-Repository-Seite .
quelle
Sie müssen SharedPreferences in AdapterClass oder einer anderen verwenden. Verwenden Sie dieses Mal einfach diese Erklärung und verwenden Sie den gleichen Arsch wie oben.
für Zeichenfolge oder booleschen Wert
Daten wie oben abrufen
quelle
2.für das Speichern in gemeinsam genutzten Einstellungen
2. zum Abrufen der gleichen Verwendung
quelle
Hier habe ich eine Helper-Klasse erstellt, um Einstellungen in Android zu verwenden.
Dies ist die Hilfsklasse:
quelle
Globales Speichern und Abrufen globaler Variablen auf funktionale Weise. Stellen Sie zum Testen sicher, dass sich Textview-Elemente auf Ihrer Seite befinden, kommentieren Sie die beiden Zeilen im Code aus und führen Sie sie aus. Kommentieren Sie dann die beiden Zeilen erneut und führen Sie sie aus.
Hier ist die ID der TextView Benutzername und Passwort.
Fügen Sie in jeder Klasse, in der Sie es verwenden möchten, diese beiden Routinen am Ende hinzu. Ich möchte, dass diese Routine globale Routinen sind, weiß aber nicht wie. Das funktioniert.
Die Variablen sind überall verfügbar. Es speichert die Variablen in "MyFile". Sie können es auf Ihre Weise ändern.
Sie nennen es mit
Der variable Benutzername wird mit "frans" und das Passwort mit "! 2 # 4%" gefüllt. Auch nach einem Neustart sind sie verfügbar.
und Sie rufen es mit ab
unter dem gesamten Code meiner grid.java
Unten finden Sie die Textansichtselemente
quelle
Ich habe eine Helferklasse erstellt, um mein Leben einfacher zu machen. Dies ist eine generische Klasse mit vielen Methoden, die häufig in Apps verwendet werden, z. B. Freigegebene Einstellungen, E-Mail-Gültigkeit, Datums- und Uhrzeitformat. Kopieren Sie diese Klasse in Ihren Code und greifen Sie überall auf die Methoden zu.
quelle