Ich möchte einen Zeitwert speichern und muss ihn abrufen und bearbeiten. Wie kann ich SharedPreferences
um dies zu tun?
Antworten
Zu viele Anzeigen?Um Werte in gemeinsamen Einstellungen zu speichern:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();
Zum Abrufen von Werten aus gemeinsamen Einstellungen:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", ""); // Second parameter is the default value.
In SharedPreferences speichern
SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.commit();
Abrufen in SharedPreferences
SharedPreferences preferences=getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
String name=preferences.getString("name",null);
Hinweis: "temp" ist der Name von sharedpreferences und "name" ist der Eingabewert. wenn der Wert nicht ausgegeben wird, wird null zurückgegeben
Editar
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("yourValue", value);
editor.commit();
Lesen Sie
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
value= pref.getString("yourValue", "");
Einfache Lösung für die Speicherung des Login-Wertes in by SharedPreferences
.
Sie können die MainActivity
Klasse oder eine andere Klasse, in der Sie den "Wert von etwas, das Sie behalten wollen", speichern werden. Legen Sie dies in Writer- und Reader-Klassen ab:
public static final String GAME_PREFERENCES_LOGIN = "Login";
Hier InputClass
ist die Eingabe und OutputClass
ist jeweils die Ausgabeklasse.
// This is a storage, put this in a class which you can extend or in both classes:
//(input and output)
public static final String GAME_PREFERENCES_LOGIN = "Login";
// String from the text input (can be from anywhere)
String login = inputLogin.getText().toString();
// then to add a value in InputCalss "SAVE",
SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
Editor editor = example.edit();
editor.putString("value", login);
editor.commit();
Jetzt können Sie es an anderer Stelle verwenden, z. B. in einer anderen Klasse. Das Folgende ist OutputClass
.
SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
String userString = example.getString("value", "defValue");
// the following will print it out in console
Logger.getLogger("Name of a OutputClass".class.getName()).log(Level.INFO, userString);
editor.putString("text", mSaved.getText().toString());
Hier, mSaved
kann jeder sein TextView
o EditText
aus dem wir eine Zeichenfolge extrahieren können. Sie können einfach eine Zeichenfolge angeben. Hier wird Text der Schlüssel sein, der den Wert enthält, der aus der mSaved
( TextView
o EditText
).
SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
Es ist auch nicht erforderlich, die Einstellungsdatei unter dem Paketnamen "com.example.app" zu speichern. Sie können Ihren eigenen bevorzugten Namen angeben. Ich hoffe, dies hilft Ihnen!
0 Stimmen
Ich habe einen Generic SharedPreferences Wrapper implementiert, schauen Sie mal rein: Android-know-how-to.blogspot.co.il/2014/03/
0 Stimmen
A vereinfachter Ansatz wäre durch die Verwendung dieser Bibliothek: github.com/viralypatel/Android-SharedPreferences-Helper ... erweiterte technische Details in meinem hier antworten ...
0 Stimmen
stackoverflow.com/a/25585711/1815624