2013-10-21 24 views
5

Ho un problema con SharedPreferences in Android.SharedPreferences non funziona - getString restituisce sempre il valore predefinito

Questo è il mio codice: impostazione

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

Io la corda e voglia di leggerlo direttamente dopo che nel metodo onCreate. Ma ottengo sempre il valore predefinito specificato "7".

Cosa c'era di sbagliato? Ho già studiato per quel problema, ma non riesco a trovare cose utili.

Grazie per il vostro aiuto :)

+3

Si chiama modificare due volte .. provare s.edit() putString ("EUR", "1,80") commit()..; e rimuovere l'extra s.edit() di seguito. – cYrixmorten

risposta

9

Ogni volta che si chiama "s.edit()" viene creato un nuovo editor. Quindi la tua chiamata "commit()" è su un'istanza dell'editor a cui non è stata applicata l'impostazione. Prova questo:

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

Questo funziona! Grazie! :-) – 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(); 

Try This

2

Prova il mio codice qui sotto. "PutString s.edit().

(" EUR " "1,80");": quello che penso è sbagliato nel codice, che si sta utilizzando diverse istanze "Editor" qui

e qui

s.edit() commit().;

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", ""); 
Problemi correlati