Ich versuche, die Werte von SharedPreferences zu aktualisieren, hier ist mein Code:SharedPreferences Wert wird nicht
edit = PreferenceManager.getDefaultSharedPreferences(this).edit();
edit.putString(Settings.PREF_USERNAME+"",txtuser);
edit.putString(Settings.PREF_PASSWORD+"",txtpass);
edit.commit();"
Das Problem ist, dass, wenn ich diese Werte am Zugriff auf nicht aktualisierten Werte zurückgibt, es gibt mir einen Wert von SharedPreferences.
Aber wenn ich die Daten in XML Datei bestätige, werden die Daten in diesem aktualisiert.
Und nach dem Neustart meiner Anwendung bekomme ich diese aktualisierten Werte. Daher muss ich die Anwendung neu starten, um aktualisierte Werte zu erhalten.
Also, wie diese aktualisierten Werte zu erhalten, sobald es sich ändert?
Vielen Dank im Voraus
Hier ist meine ganze Code:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
ctx=this;
status=PreferenceManager.getDefaultSharedPreferences(this).getString(Settings.PREF_STATUS, Settings.DEFAULT_STATUS);// get old value
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
on(ctx,true);// function will call and value is updated
}
}});
status=PreferenceManager.getDefaultSharedPreferences(this).getString(Settings.PREF_STATUS, Settings.DEFAULT_STATUS);// this should give me a updated value but gives old value
}
public static boolean on(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(Settings.PREF_ON, Settings.DEFAULT_ON);
}
public static void on(Context context,boolean on) {
if (on) Receiver.engine(context).isRegistered(); //
}
**********in reciver file***********
public void isRegistered) {
Editor edit = PreferenceManager.getDefaultSharedPreferences(Receiver.mContext).edit();
edit.putString(Settings.PREF_STATUS+"","0");
edit.commit();
}
Code anzeigen, um den Wert zu erhalten. –
Können Sie anderen Code anzeigen, der korrekte Werte angibt? Und woher aktualisieren Sie die Werte? Wenn Sie Werte erhalten, bevor Sie gemeinsame Einstellungen aktualisieren, werden auf jeden Fall alte Werte angezeigt. –