2010-10-25 18 views
5

मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं।ListActivity विधि पर क्लिक किए गए आइटम की पहचान करें ListItem पर क्लिक करें

मेरे पास ListActivity पर कई ऑब्जेक्ट लोड किए गए हैं। मैं घटना onListItemClick पर क्लिक की गई वस्तु को जानना चाहता हूं।

मुझे लगता है कि विधि onListItemClick में आईडी नामक पैरामीटर है। मैं इस आईडी को कैसे सेटअप कर सकता हूं?

मेरी वस्तुओं को आईडी द्वारा पहचाना जाता है, मैं इस आईडी को सूची में कैसे जोड़ सकता हूं?

धन्यवाद।

उत्तर

7

आपके सूची डेटा का स्रोत क्या है? यदि आप कर्सर का उपयोग कर रहे हैं - तो आईडी onListItemClick(ListView l, View v, int position, long id) में पारित आईडी स्वचालित रूप से कर्सर पंक्ति की आईडी होगी।

+0

मैं कर्सर का उपयोग नहीं कर रहा हूं। मैं एक स्ट्रिंग सरणी का उपयोग कर रहा हूँ। – VansFannel

+0

फिर मान लें कि आपकी सरणी में इंडेक्स में से एक में आईडी है, स्थिति चर का उपयोग करके सरणी का उपयोग करें। यानी myArray [स्थिति] [0] (यदि आपकी आईडी सरणी के @ इंडेक्स 0 है) – Dave

+0

क्या आप देखते हैं मेरा क्या मतलब है? स्रोत डेटा में आपके ऑब्जेक्ट आईडी के साथ शुरू होने के लिए मौजूद होना चाहिए, भले ही यह स्ट्रिंग [] या ऐरेलिस्ट, या कर्सर या कोई अन्य स्रोत हो। – Dave

2

निम्न का उपयोग करें;

listView.getItemAtPosition(position); 

जहां सूची दृश्य सूची आपकी सूची का नाम है।

+0

नहीं, यह मेरे लिए काम नहीं करता। उदाहरण के लिए, मैंने स्थिति 12 पर आईडी = 1 के साथ ऑब्जेक्ट रखा है। मैं स्थिति को जानना नहीं चाहता, मैं किसी विशिष्ट स्थिति पर ऑब्जेक्ट से आईडी जानना चाहता हूं। – VansFannel

8

यदि सेक्शनऑबज आपकी ऑब्जेक्ट है जिसे आप बाद में एक्सेस करना चाहते हैं, तो जब आप स्रोत सेट करते हैं तो एडाप्टर में सेट करें।

ArrayList<SectionObj> li 

ArrayAdapter<SectionObj> adapter=new ArrayAdapter<SectionObj>(getApplicationContext(),android.R.layout.simple_list_item_1, li); 
    setListAdapter(adapter); 
तो उर श्रोता विधि में

..

protected void onListItemClick(ListView l, View v, int position, long id) { 

SectionObj o=(SectionObj)getListView().getItemAtPosition(position); 

}

1

आप अपने ArrayAdapter ध्यान में रखते हुए आईडी सेट कर सकते हैं। निम्नलिखित पृष्ठों को चेकआउट करें तो आपको समाधान मिलना चाहिए।

http://developer.android.com/reference/android/app/ListActivity.html#onListItemClick(android.widget.ListView,%20android.view.View,%20int,%20long)

http://sudarmuthu.com/blog/using-arrayadapter-and-listview-in-android-applications

संबंधित मुद्दे