DevAndroid Posté(e) 7 juillet 2010 Share Posté(e) 7 juillet 2010 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??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 7 juillet 2010 Share Posté(e) 7 juillet 2010 Il faut commencer par apprendre à poser des questions claires, précises et suffisamment détaillées. Ma boule de cristal est en panne. Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 7 juillet 2010 Auteur Share Posté(e) 7 juillet 2010 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 More sharing options...
naholyr Posté(e) 7 juillet 2010 Share Posté(e) 7 juillet 2010 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 More sharing options...
Pierre87 Posté(e) 8 juillet 2010 Share Posté(e) 8 juillet 2010 normalement, un "put" va écraser tu dois faire une lecture qui plante avant... Lien vers le commentaire Partager sur d’autres sites More sharing options...
DevAndroid Posté(e) 8 juillet 2010 Auteur Share Posté(e) 8 juillet 2010 C'est bon jai trouver merci cetait un Toast qui avait pour valeur une variable int qui me faisait planter l'appli. Merci a vous Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.