Nie wysyłasz zapytania o identyfikator _id z bazy danych (tylko kolumna KEY_NAME2), więc nie możesz pobrać go z adaptera.
Ta linia:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
jest całkowicie błędne. Próbujesz rzutować String (który jest zwracany przez ArrayAdapter<String>
do kursora, który nigdy nie może działać.
Musisz użyć CursorAdapter
(lub SimpleCursorAdapter
) dla Twojego ListView. Kursor powinien pytać co najmniej o _id i KEY_NAME2.
Z tym adapterem getItem(int position)
zwróci kursor ustawiony na żądaną pozycję. Wtedy wszystko, co musisz zrobić, to cursor.getInt(cursor.getColumnIndex("_id"))
i jesteś tam.