Versuchen Sie es so.
import android.content.Context;
import android.content.SharedPreferences;
/**
* @author VIVEK
* This class deals in with setting Cache value for complete app.
*/
public class SharedPrefUtil{
/*Set Boolean value in shared preferences */
public static void setSharedPref(Context context, String key, boolean value) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, value);
editor.commit();
}
/*get Boolean value in shared preferences */
public static boolean getSharedPref(Context context, String key, boolean defaultVal) {
boolean prefToken = defaultVal;
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
prefToken = sharedPreferences.getBoolean(key, false);
return prefToken;
}
/*Set String value in shared preferences */
public static void setSharedPref(Context context, String key, String value) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
/*get String value in shared preferences */
public static String getSharedPref(Context context, String key, String defaultVal) {
String value = defaultVal;
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
value = sharedPreferences.getString(key, defaultVal);
return value;
}
public static void cleanSharedPrefFile(Context context) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
} // End of main class over here ...
Jetzt wollen Sie einen Wert in Geteilt Pref setzte dann einstellen, wie diese
SharedPrefUtil.setSharedPref(MainActivity.this, "test", storeBuff);
Nun, wenn Sie Wert brauchen, um aus dem gemeinsamen Pref rufen dann wie diese
SharedPrefUtil.getSharedPref(MainActivity.this, "test", "default value");
In Platz von editor.commit()
, verwenden Sie editor.apply()
GRUNDLAGEN:
getDefaultSharedPreferences() verwendet einen Standard-Präferenz-Dateinamen. Dieser Standardwert wird pro Anwendung festgelegt, so dass alle Aktivitäten in der gleichen App Zusammenhang kann es leicht zugreifen, wie im folgenden Beispiel:
SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
if (spref.contains("email")) {
String sEmailAddr = spref.getString("email", "");
}
Die Einstellungen werden in der Regel bei /data/data/com.package.name/shared_prefs/com.package.name_preferences.xml
Die alternative Methode gespeichert - getSharedPreferences (Name , mode) erfordert die Angabe eines bestimmten Präferenz- (Datei-) namens und eines Betriebsmodus (z. B. private, world_readable usw.), die einen besseren Zugriff auf Ihre SharedPref-Datei ermöglichen.
Ich werde nicht einfach blinden Random Code kopieren, ohne zu verstehen, was die Ursache des Problems ist. – Johny19
Komplette Klasse über SO aktualisieren – AndroidHacker
Entschuldigung, ich kann das nicht akzeptieren. Auf die ursprüngliche Frage antwortet es nicht. Ich brauche keinen Code. Ich brauche eine Antwort, warum die Pref verloren gehen nach einem Neustart – Johny19