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.