Du forespørger ikke på _id'et fra databasen (kun KEY_NAME2-kolonnen), så du kan ikke hente det fra adapteren.
Denne linje:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
er helt forkert. Du forsøger at caste en streng (som returneres af ArrayAdapter<String>
til en markør, som aldrig kan fungere.
Det du skal gøre er at bruge en CursorAdapter
(eller SimpleCursorAdapter
) til din ListView. Markøren skal mindst søge efter _id og KEY_NAME2.
Med denne adapter er getItem(int position)
vil returnere et markørsæt til den ønskede position. Så skal du bare cursor.getInt(cursor.getColumnIndex("_id"))
og du er der.