Sto cercando di aggiornare i valori di SharedPreferences, qui è il mio codice:SharedPreferences non viene aggiornato
edit = PreferenceManager.getDefaultSharedPreferences(this).edit();
edit.putString(Settings.PREF_USERNAME+"",txtuser);
edit.putString(Settings.PREF_PASSWORD+"",txtpass);
edit.commit();"
Il problema è che quando sto Accedendo a questo valore, esso non restituisce valori aggiornati, mi dà un valore di SharedPreferences.
Ma quando si confermano i dati nel file XML, i dati aggiornati in questo.
E dopo aver riavviato la mia applicazione sto ottenendo quei valori aggiornati. Quindi mi richiede di riavviare l'applicazione per ottenere valori aggiornati.
Quindi, come ottenere quei valori aggiornati una volta che cambia?
Grazie in anticipo
Ecco tutto il mio codice:
@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();
}
mostra il codice per ottenere il valore. –
Puoi mostrare altro codice che fornisce valori corretti. E da dove stai aggiornando i valori? Se stai ricevendo dei valori prima di aggiornare le preferenze condivise, darà sicuramente dei vecchi valori. –