データベースから_id(KEY_NAME2列のみ)を照会していないため、アダプターから_idを取得することはできません。
この行:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
完全に間違っています。文字列をキャストしようとしています(ArrayAdapter<String>
によって返されます) カーソルに移動しますが、これは機能しません。
あなたがしなければならないことは、CursorAdapter
を使用することです (またはSimpleCursorAdapter
)ListView用。カーソルは、少なくとも_idとKEY_NAME2を照会する必要があります。
このアダプターを使用すると、getItem(int position)
要求された位置に設定されたカーソルを返します。次に行う必要があるのは、cursor.getInt(cursor.getColumnIndex("_id"))
だけです。 そして、あなたはそこにいます。