J'essaie de créer un adaptateur de liste qui s'insère et affiche les données d'une base de données. De ce que je peux dire, il tire l'information, mais il échoue quand j'essaye de créer le ListAdapter du nouvel adaptateur de curseur simple. Je ne sais pas ce que je fais mal ici.Mettre des données SQLite dans ListActivity
SQLiteDatabase db = myDbHelper.getReadableDatabase();
String select = "Select StateID, State, Details from States";
Cursor cursor = db.rawQuery(select, null);
startManagingCursor(cursor);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
cursor,
new String[]{"State"},
new int[]{android.R.id.text1});
setListAdapter(adapter);
La deuxième partie sera de trouver comment assigner StateID comme id ligne dans la liste afin que je puisse y accéder quand quelqu'un clique sur un état, mais pour que ce n'est pas visible.
Je n'ai pas encore fait beaucoup de débogage dans Eclipse, encore en phase d'apprentissage. Dans le LogCat je trouve 06-22 21: 02: 22,519: ERREUR/AndroidRuntime (229): gestionnaire Uncaught: fil conducteur sortant en raison d'exception non interceptée 06-22 21: 02: 22,750: ERREUR/AndroidRuntime (229): java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.jl.og/com.jl.og.Informational}: java.lang.IllegalArgumentException: la colonne '_id' n'existe pas – AndyD273
J'ai donc renommé StateID en _id, et cela semblait le faire. Ce qui est vraiment frustrant. Ce n'est pas _ID, ça doit être _id. J'ai aussi 8 tables, que je rejoins ensemble, et avoir _id comme clé primaire sur toutes les tables est un peu ennuyeux, car elles ne correspondent pas aux clés étrangères maintenant, ce qui rend les choses maladroites. De plus j'utilise cette base de données dans plusieurs applications, ce qui signifie que je dois soit les réécrire pour utiliser la nouvelle structure, soit je dois renommer les colonnes d'ID chaque fois que je fais une mise à jour ... Un moyen de contourner cela? – AndyD273
Est-il possible de simplement mettre 'Select StateID comme _id'? – AndyD273