के साथ सूचीबद्ध सूची दृश्य से चयनित आइटम प्राप्त करें मैं एंड्रॉइड विकास के लिए नया ब्रांड हूं ... आईफोन और नेट पृष्ठभूमि से आ रहा हूं। मैंने इस के लिए बहुत ही समान प्रश्न देखे हैं, लेकिन उनमें से कोई भी SimpleCursorAdapter से निपटा नहीं है। जब एक आइटम क्लिक किया जाता हैSimpleCursorAdapter
ListAdapter adapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_1,
c,
new String[] {"name"},
new int[] {android.R.id.text1});
setListAdapter(adapter);
तब:
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Difference between this:
Cursor c = (cursor)l.getItemAtPosition(position);
//and this??
Cursor c = (Cursor)l.getAdapter().getItem(position);
int categoryId = c.getInt(0);
}
इस उचित तरीका है
मैं एक बुनियादी ListActivity जो मेरे ListView करने के लिए एक SQLite क्वेरी से डेटा बाध्य करने के लिए एक कर्सर का उपयोग करता है चयनित तत्व की आईडी प्राप्त करने के लिए? यह अजीब लगता है, क्योंकि मुझे नहीं लगता कि डेटाबेस बंद होने के बाद मैं अपने कर्सर का उपयोग कर सकता हूं (जो कि बाध्य होने के बाद है)। आईडी की बात क्या है, जब मुझे उस आईडी से वास्तविक वस्तु प्राप्त करने का कोई तरीका नहीं मिल रहा है? साथ ही, मुझे समझ में नहीं आता कि getItemAtPosition() कर्सर वापस क्यों करेगा ... कर्सर पूरी सूची से बंधे हैं; सिर्फ एक पंक्ति नहीं। अंत में, यदि यह सही है, तो कर्सर प्राप्त करने के दो तरीकों के बीच कोई अंतर है? धन्यवाद।
धन्यवाद! मैं startManagingCursor को कॉल कर रहा था, लेकिन मुझे समझ में नहीं आया कि अब तक क्यों! कुछ सवाल ... तो जब भी मैं SQLiteDatabase.close() को कॉल करता हूं, तो यह मेरे कर्सर को इसे एक्सेस करने से नहीं रोकता है? और ListView में getCursor() विधि प्रतीत नहीं होती है। आखिरकार, मेरी विधि को पारित आईडी आईडी मेरे डेटाबेस से स्वचालित रूप से है? धन्यवाद! – GendoIkari
आह, अगर आप 'क्लोज़' कहते हैं तो आपकी लिस्ट व्यू शायद काम करना बंद कर देगी: आम तौर पर मैं जो करता हूं वह है कि मैं अपने एप्लिकेशन ऑब्जेक्ट को अपने डेटाबेस एडाप्टर के रूप में पुन: उपयोग करता हूं: 'ऑनक्रेट' में खुलता है और 'टर्मिनेट' में बंद होता है और फिर टाई करने के लिए इसका उपयोग करता है ऐप के जीवन चक्र में डेटाबेस कनेक्शन लाइफसाइकिल। जहां तक 'getCursor', मेरी त्रुटि: यह 'कर्सर सी = ((SimpleCursorAdapter) l.getAdapter()) होना चाहिए। GetCursor();'। और हाँ, आईडी डेटाबेस से बाहर आता है: यह काफी सुविधाजनक है। – Femi
आपकी मदद के लिए फिर से धन्यवाद! – GendoIkari