SQLite
 sql >> Database >  >> RDS >> SQLite

Come ottenere l'ID dal database al clic dell'elemento listview in Android

Non stai interrogando _id dal database (solo la colonna KEY_NAME2), quindi non sei in grado di ottenerlo dall'adattatore.

Questa riga:

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

è del tutto sbagliato. Stai tentando di eseguire il cast di una stringa (che viene restituita da ArrayAdapter<String> a un cursore, che non può mai funzionare.

Quello che devi fare è usare un CursorAdapter (o SimpleCursorAdapter ) per ListView. Il cursore dovrebbe interrogare almeno _id e KEY_NAME2.

Con questo adattatore il getItem(int position) restituirà un cursore impostato sulla posizione richiesta. Quindi tutto ciò che devi fare è cursor.getInt(cursor.getColumnIndex("_id")) e ci sei.