2012-09-18 6 views
33

मैं setHeaderView() और setFooterView() और ViewInflater विधियों का उपयोग कर ListView पर एक पाद लेख और शीर्षलेख दृश्य जोड़ रहा हूं। यह काफी अच्छा काम करता है।किसी सूची दृश्य का शीर्षलेख या पाद लेख कैसे क्लिक करें

लेकिन मैं onListItemClick घटनाओं को फायरिंग से हेडर या पाद लेख दृश्य को कैसे रोक सकता हूं? निस्संदेह मैं घटना को पकड़ सकता हूं और जांच सकता हूं कि यह हेडर या पाद लेख से आया है, लेकिन यह केवल समस्या का एक हिस्सा हल करता है, क्योंकि हेडर और पाद लेख अभी भी क्लिक करते समय ध्यान केंद्रित कर चुके हैं।

उत्तर

63

बस ListView#addHeaderView(View v, Object data, boolean isSelectable); का उपयोग करें और addFooter() विधि से मेल खाते हैं।


Object data पैरामीटर के प्रयोजन।

डेटा दृश्य समर्थन:

ListView स्रोत कोड data पैरामीटर के रूप में वर्णन करता है। यह ListAdapter # getItem (int) से वापस आ गया है।

जिसका अर्थ है कि यदि मैं listView.getAdapter().getItem(0); का उपयोग करता हूं तो यह हमारे शीर्षलेख से data ऑब्जेक्ट लौटाएगा।


मैं एक उदाहरण के साथ इस विस्तृत होगी:

listView.addHeaderView(view, "Potato", false); 
listView.setAdapter(adapter); 

बाद में अगर हम पूछते हैं::

listView = (ListView) findViewById(R.id.list); 
String[] array = new String[] {"one", "two", "three"}; 
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array); 

अगला का कोई ऐसा शीर्ष लेख और एडाप्टर सेट कर सकते हैं

Log.v("ListAdapter", listView.getAdapter().getItem(0)); // output: "Potato" 
Log.v("ArrayAdapter", adapter.getItem(0));    // output: "one" 
+2

आह महान! यह काम करता हैं। एक और सवाल डेटा ऑब्जेक्ट के लिए क्या है? फिलहाल मैंने डेटा पैरामीटर को शून्य पर सेट किया है। लेकिन जब मैं इसके लिए एक असली वस्तु पारित करता हूं तो इसका क्या होता है? – Flo

+0

अभी मुझे नहीं पता, मैं स्रोत कोड पढ़ रहा हूं और यह देखने के लिए ऑनलाइन देख रहा हूं कि यह कैसे काम करता है। यदि मैं इसे समझता हूं तो मैं एक अपडेट पोस्ट करूंगा! – Sam

+0

यह काम करता है। बहुत समय बचाया – Anukool

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