2013-10-21 24 views
5

Android'de SharedPreferences ile ilgili bir sorunum var.SharedPreferences çalışmıyor - getString her zaman varsayılan değeri döndürür

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(); 

Özür Dize ayarlama ve doğrudan onCreate yönteminde bundan sonra bunu okumak istiyorum:

Bu benim kodudur. Ama her zaman belirtilen varsayılan değeri "7" alırım.

Sorun neydi? Bu problem için zaten araştırdım, ancak yararlı şeyler bulamadım. Yardımlarınız için

Teşekkür :)

+3

Sen .. s.edit() deneyin iki kez düzenlemek diyoruz putString ("eur", "1.80") (taahhüt)..; ve aşağıdaki ekstra s.edit() öğesini kaldırın. – cYrixmorten

cevap

9

siz "s.edit()" dediğimiz her yeni editör oluşturulur. Böylece "commit()" çağrınız, ayarınızın uygulanmadığı editörün bir örneğidir. Bu deneyin:

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

Bu işe yarıyor! Teşekkürler! :-) – 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(); 

Bu

2

aşağıda kodumu deneyin deneyin. Kodunuzda yanlış olduğunu düşündüğüm, burada farklı "Editör" örnekleri kullandığınız:

"s.edit(). PutString (" eur "," 1.80 ");"

ve burada

s.edit() (tamamlama.);

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", ""); 
İlgili konular