Bạn không truy vấn _id từ cơ sở dữ liệu (chỉ cột KEY_NAME2), vì vậy bạn không thể lấy nó từ bộ điều hợp.
Dòng này:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
là hoàn toàn sai. Bạn đang cố truyền một chuỗi (được trả về bởi ArrayAdapter<String>
con trỏ, con trỏ không bao giờ có thể hoạt động.
Những gì bạn phải làm là sử dụng CursorAdapter
(hoặc SimpleCursorAdapter
) cho ListView của bạn. Con trỏ ít nhất phải truy vấn _id và KEY_NAME2.
Với bộ điều hợp này, getItem(int position)
sẽ trả về một con trỏ được đặt ở vị trí được yêu cầu. Sau đó, tất cả những gì bạn cần làm là cursor.getInt(cursor.getColumnIndex("_id"))
và bạn đang ở đó.