Sie fragen die _id nicht aus der Datenbank ab (nur die Spalte KEY_NAME2), daher können Sie sie nicht vom Adapter abrufen.
Diese Zeile:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
ist völlig falsch. Sie versuchen, einen String umzuwandeln (der von ArrayAdapter<String>
zurückgegeben wird zu einem Cursor, der niemals funktionieren kann.
Was Sie tun müssen, ist einen CursorAdapter
zu verwenden (oder SimpleCursorAdapter
) für Ihre ListView. Der Cursor sollte mindestens nach _id und KEY_NAME2 fragen.
Mit diesem Adapter wird die getItem(int position)
gibt einen auf die angeforderte Position gesetzten Cursor zurück. Dann brauchen Sie nur noch cursor.getInt(cursor.getColumnIndex("_id"))
und du bist da.