PoZZyX Posted May 28, 2010 Share Posted May 28, 2010 Bonjours à tous (et à toutes), J'ai un petit problème avec les SharedPreference avec mon application. J'ai déclaré qqchose comme ça : import android.content.SharedPreferences; public final class Global { public static SharedPreferences userPref; } Que j'instancie comme cela dans mon onCreate : Global.userPref = this.getPreferences(MODE_PRIVATE); if (!Global.userPref.getBoolean("exists", false)) { showPreference(); } Au retour de la fenetre des préférences, je fais ceci : if(data.getExtras() != null && data.getExtras().getString("doorId") != null && isNumeric(data.getExtras().getString("doorId"))) { Global.userPref.edit().clear(); Global.userPref.edit().putInt("doorId", Integer.parseInt(data.getExtras().getString("doorId"))); Global.userPref.edit().putBoolean("exists", true); Global.userPref.edit().commit(); preferencesOk(); } else { showPreference(); Global.userPref.edit().clear(); Global.userPref.edit().putBoolean("exists", false); Global.userPref.edit().commit(); } Le programme passe bien par le putInt et la valeur est bien différente de -1, mais plus tard quand je fais : Global.userPref.getInt("doorId", -1) J'obtiens encore et toujours -1, comme si il n'avait pas fixé la valeur. De plus, à chaque lancement de l'application, il me redemande les préférences car elles ne sont pas enregsitrées. Comme si mon commit ne faisait rien. Une idée pour m'aider ? Merci d'avance !!!! Link to comment Share on other sites More sharing options...
popolbx Posted May 28, 2010 Share Posted May 28, 2010 juste à froid j ai une piste: quand tu fais : Global.userPref.edit().clear(); le edit() te renvoie un objet.... tu applique le clear à cet objet. la ligne suivante: Global.userPref.edit().putBoolean c'est mignon mais si l'implémentation de edit() n'utilise pas un singleton tu vas recréer un objet edit à chaque ligne... donc le gros commit à la fin va se faire sur un objet tout beau tout neuf.... qui ne fera donc : RIEN. fais plutot : XXXX edit = xxx.edit(); edit.putBoolean(....) edit.commit(); Link to comment Share on other sites More sharing options...
PoZZyX Posted May 28, 2010 Author Share Posted May 28, 2010 En effet cela semble provenir de là :D Merci beaucoup pour ton aide !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.