आप डेटाबेस से _id को क्वेरी नहीं कर रहे हैं (केवल KEY_NAME2 कॉलम), इसलिए आप इसे एडॉप्टर से प्राप्त करने में सक्षम नहीं हैं।
यह पंक्ति:
Cursor cur = (Cursor) parent.getItemAtPosition(position);
पूरी तरह गलत है। आप एक स्ट्रिंग कास्ट करने का प्रयास कर रहे हैं (जिसे ArrayAdapter<String>
. द्वारा लौटाया जाता है एक कर्सर के लिए, जो कभी काम नहीं कर सकता।
आपको क्या करना है, एक CursorAdapter
. का उपयोग करना है (या SimpleCursorAdapter
) आपके ListView के लिए। कर्सर को कम से कम _id और KEY_NAME2 के लिए क्वेरी करनी चाहिए।
इस एडेप्टर के साथ getItem(int position)
अनुरोधित स्थिति पर एक कर्सर सेट लौटाएगा। फिर आपको बस इतना करना है cursor.getInt(cursor.getColumnIndex("_id"))
और तुम वहाँ हो।