Tôi cố gắng để cập nhật các giá trị của SharedPreferences, đây là mã của tôi:SharedPreferences không được cập nhật
edit = PreferenceManager.getDefaultSharedPreferences(this).edit();
edit.putString(Settings.PREF_USERNAME+"",txtuser);
edit.putString(Settings.PREF_PASSWORD+"",txtpass);
edit.commit();"
Vấn đề là khi tôi truy cập vào các giá trị này, nó không phải là trở về giá trị cập nhật, nó mang lại cho tôi một giá trị của SharedPreferences.
Nhưng khi tôi xác nhận dữ liệu trong XML tệp, dữ liệu được cập nhật trong đó.
Và sau khi khởi động lại ứng dụng của tôi, tôi nhận được các giá trị được cập nhật đó. Vì vậy, nó đòi hỏi tôi phải khởi động lại ứng dụng để có được các giá trị cập nhật.
Vì vậy, cách nhận các giá trị được cập nhật đó khi thay đổi?
Cảm ơn trước
Dưới đây là toàn bộ mã của tôi:
@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();
}
hiển thị mã nhận giá trị. –
Bạn có thể hiển thị mã khác cung cấp các giá trị chính xác không. Và từ nơi bạn đang cập nhật các giá trị? Nếu bạn nhận được các giá trị trước khi cập nhật các tùy chọn được chia sẻ, nó chắc chắn sẽ cung cấp các giá trị cũ. –