2013-10-21 16 views
5

Tôi gặp sự cố với SharedPreferences trong Android.SharedPreferences không hoạt động - getString luôn trả về giá trị mặc định

Đây là mã của tôi:

SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE); 
    s.edit().putString("eur", "1.80"); 
    s.edit().commit(); 
    SharedPreferences a = this.getSharedPreferences("kurs",MODE_WORLD_READABLE); 
    String kurs = a.getString("eur","7"); 

    Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG); 
    hhh.show(); 

Tôi đang thiết lập các chuỗi và muốn đọc nó ra trực tiếp sau đó trong phương thức onCreate. Nhưng tôi luôn nhận được giá trị mặc định được chỉ định "7".

Điều gì đã xảy ra? Tôi đã nghiên cứu cho vấn đề đó, nhưng tôi không thể tìm thấy những thứ hữu ích.

Cảm ơn sự giúp đỡ của bạn :)

+3

Bạn gọi chỉnh sửa hai lần .. thử s.edit() putString ("eur", "1.80") cam kết()..; và loại bỏ các s.edit thêm() dưới đây. – cYrixmorten

Trả lời

9

Mỗi lần bạn gọi "s.edit()", trình chỉnh sửa mới được tạo. Do đó, lệnh gọi "commit()" của bạn nằm trên một thể hiện của trình soạn thảo chưa áp dụng thiết lập của bạn. Hãy thử điều này:

SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE); 
Editor editor = s.edit(); 
editor.putString("eur", "1.80"); 
editor.commit(); 
+0

Điều đó hoạt động! Cảm ơn! :-) – Maximii77

1
SharedPreferences myPrefs = this.getSharedPreferences("kurs", MODE_WORLD_READABLE); 
SharedPreferences.Editor editor = myPrefs.edit(); 
editor.putString("eur", "1.80"); 
// commit the edits 
editor.commit(); 


SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", context.MODE_WORLD_READABLE); 
String kurs = myPrefs.getString("eur", "7"); 

Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG); 
hhh.show(); 

thử này

2

Vui lòng thử mã của tôi dưới đây. Điều tôi cho là sai trong mã của bạn, rằng bạn đang sử dụng các trường hợp "Trình chỉnh sửa" khác nhau tại đây:

"s.edit(). PutString (" eur "," 1,80 ");"

và đây

s.edit() cam kết().

private static String APP_SHARED_PREFS = "MyAppID"; 
// Write the value 
SharedPreferences.Editor prefsEditor = getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE).edit(); 
prefsEditor.putString("KEY", "VALUE"); 
prefsEditor.commit(); 
// Get the value 
return getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE).getString("KEY", ""); 
Các vấn đề liên quan