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.