Jump to content

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


Recommended Posts

Salut,

j'ais un codes dans lequel j'utilisai un String avec les Préférences, pour des raisons pratique, je suis passé aux int.

Jais dons fait les modification nécessaire mais [color=red]sa[/color] fonctionne pas.

Quelqu'un aurait la soluce svp???

Link to comment
Share on other sites

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

Link to comment
Share on other 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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...