chkeff Posté(e) 19 février 2011 Posté(e) 19 février 2011 Bonjour à tous ! Voila depuis peut je dois utiliser une base de données SQLite dans mon appli. Je dois dans une premier temps lister le contenu d'une table dans une ListView et je bloque un peu. En fait le code plante au moment de l'instanciation d'un SimpleCursorAdapter. Voici le code: SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, new String[]{"libelle"}, new int[]{android.R.id.text1}); L'erreur est la suivante: 02-19 14:53:48.574: ERROR/AndroidRuntime(24883): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist Le problème, c'est que ma table ne contient effectivement pas de champs nommé "_id" mais je ne fait jamais référence à un tel champ alors pourquoi il s'en va me le chercher ? Je comprend pas du tout le problème, si quelqu'un à une idée je suis preneur ! Merci d'avance !
chpil Posté(e) 20 février 2011 Posté(e) 20 février 2011 Un CursorAdapter a besoin d'une colonne '_ID' dans la table pour pouvoir fonctionner; ça lui sert pour identifier les lignes de la table Donc, si tu veux utiliser un CusorAdapter, tu ajoutes une telle colonne dans la table (en général en autoincrement) Et si tu ne veux pas mettre de colonne _ID, tu n'utilises pas de CursorAdapter ;)
chkeff Posté(e) 21 février 2011 Auteur Posté(e) 21 février 2011 j'ai effectué la modification dans ma base de données mais maintenant j'ai un autre problème: Quand je veut attaché l'adapter à une listview, j'ai une erreur comme quoi l'adapter vaudrait null. SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, new String[]{"libelle"}, new int[]{android.R.id.text1}); LV.setAdapter(adapter); Donc ça plante au "setAdapter". Une diée ? Merci d'avance !
Arkezis Posté(e) 21 février 2011 Posté(e) 21 février 2011 Ta listView vient d'où ? Pourrions nous avoir les 2 XML qui vont bien svp ?
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.