SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment obtenir l'identifiant de la base de données en cliquant sur l'élément listview dans Android

Vous n'interrogez pas le _id de la base de données (uniquement la colonne KEY_NAME2), vous ne pouvez donc pas l'obtenir de l'adaptateur.

Cette ligne :

Cursor cur = (Cursor) parent.getItemAtPosition(position);

est entièrement faux. Vous essayez de caster une chaîne (qui est renvoyée par ArrayAdapter<String> à un curseur, qui ne peut jamais fonctionner.

Ce que vous devez faire, c'est utiliser un CursorAdapter (ou SimpleCursorAdapter ) pour votre ListView. Le curseur doit interroger au moins _id et KEY_NAME2.

Avec cet adaptateur, le getItem(int position) renverra un curseur réglé sur la position demandée. Ensuite, tout ce que vous avez à faire est de cursor.getInt(cursor.getColumnIndex("_id")) et vous y êtes.