Aller au contenu

Au secours! :) Comment utiliser int avec les Preferences?


Recommended Posts

Désoler,

voila le code que j utilise pour enregistrer une variable de type String dans les Préférences:

String pseudo = "blabla";

SharedPreferences util =PreferenceManager.getDefaultSharedPreferences(getBaseContext());
                       SharedPreferences.Editor editor = util.edit();
                       editor.putString("nom", pseudo);
                       editor.commit();

Mais je voudrais utiliser maintenant les variables int:

int pseudo = 1;

SharedPreferences util =PreferenceManager.getDefaultSharedPreferences(getBaseContext());
                       SharedPreferences.Editor editor = util.edit();
                       editor.putInt("nom", pseudo);
                       editor.commit();

voila seulement ce code juste au dessus ne marche pas.

je voulais savoir quelle etais la methode pour pouvoir enregistrer des variables de type int dans les Preferences.

Voila pour le LogCat :

07-09 20:44:17.967: ERROR/AndroidRuntime(423): Caused by: java.lang.ClassCastException: java.lang.String

Lien vers le commentaire
Partager sur d’autres sites

Hélas pas de int dans les préférences à ma connaissance, en tous cas pas tant qu'on les gère avec une PreferenceActivity. En "manuel" on peut toujours appeler preferences.edit().putInt(), mais on n'a pas ce niveau de contrôle dans une PreferenceActivity où on n'a que String et Boolean (dans le cas des checkbox).

Perso je les gère :

* en écriture avec un simple preferences.xml et une PreferenceActivity avec addPreferencesFromResource(R.xml.preferences). Basique.

* en lecture, je caste :) Integer.parseInt(preferences.getString("pref", String.valueOf(defaultValue)));

Je sais pas si c'est utile, vu que le message n'est pas hyper clair au départ, mais voilà mes 2 cents ;)

Edit: OK, je suis tombé à côté du coup.

Ton problème vient du fait que tu as déjà une String dans tes préférences, et que tu essaies de mettre un int à la place. En gros ça revient à faire "String variable = 42", et ça forcément ça ne marche pas :)

Le plus simple : désinstaller l'application avant de re-tester, ça reset les préférences.

Si l'installation est déjà déployée sur un parc d'utilisateurs, alors il faut que tu catches cette exception pour gérer le transfert.

Ou encore, changer le nom de la préférence.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...