2011-10-25 27 views
18

मेरे पास कुछ कस्टम अनुभागों के साथ एक सूची दृश्य है। प्रत्येक अनुभाग में इसका अपना हेडर व्यू है। मैं चाहता हूं कि सूची में तत्व क्लिक करने योग्य हों, लेकिन स्पष्ट रूप से अनुभाग हेडर को क्लिक करने योग्य नहीं होना चाहिए। इसलिए सेक्शन हेडर के लिए एक्सएमएल में मैंने android:clickable="false" जोड़ा।एंड्रॉइड: क्लिक करने योग्य = "सत्य" मतलब यह है कि यह क्लिक करने योग्य नहीं है?

डीबगिंग करते समय मैंने देखा कि सेक्शन हेडर अभी भी मेरे setOnItemClickListener() का जवाब दे रहे थे। फिर मैंने XML में android:clickable="true" सेट करने का प्रयास किया। और निश्चित रूप से पर्याप्त है, अनुभाग शीर्षलेख दृश्य अब क्लिक का जवाब नहीं देते हैं ...

तो यहां क्या सौदा है? यह क्यों है कि clickable = true यह कह रहा है कि यह क्लिक करने योग्य नहीं है? क्या मैं यहाँ कुछ गलत समझ रहा हूँ?

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/item_text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/black" 
    android:background="@android:color/transparent" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:paddingLeft="30dp" 
    android:clickable="true" /> 

अगर मैं सेट कि clickable="false" तल पर है, तो इस दृश्य setOnItemClickListener() का जवाब करने के लिए शुरू होता है ...

+0

क्या आप अपने एडाप्टर से भी कोड जोड़ सकते हैं? –

+1

मुझे एक ही समस्या है और मैंने कोई कस्टम ऑनक्लिक श्रोताओं को नहीं जोड़ा है। –

+0

custome एडाप्टर में व्यूहोल्डर का उपयोग करने का प्रयास करें और अपने एडाप्टर क्लास में क्लिकिवेंट्स दें ..http: //stackoverflow.com/questions/27743179/click-event-not-working-on-button-in-listview-item/27743279#27743279 –

उत्तर

17

आप OnItemClickListener सेट करते हैं, घटना onItemClicked केवल बुलाया जाएगा: यहाँ मेरी एक्सएमएल है अगर ListView के बच्चे में OnClickListener सेट नहीं है। सही पर क्लिक करने योग्य सेट करने से बच्चे के दृश्य (इस मामले में आपके TextView) खाली OnClickListener के साथ प्रदान करेंगे। चूंकि TextView के OnClickListenerOnItemClickListener को सेट नहीं किया जाएगा।

+2

मैं आपकी व्याख्या को समझने के साथ प्रयोग करने की कोशिश कर रहा हूं लेकिन मुझे कोई भाग्य नहीं है। क्या आप कुछ बुनियादी उदाहरण कोड दिखा सकते हैं जो साबित करेंगे कि आप जो कह रहे हैं वह सही है? शायद मैं इसे समझ नहीं रहा हूं ... –

1

मुझे लगता है कि आपको android:clickable="true" लिखना नहीं चाहिए जब यह सूची आइटम दृश्य का बच्चा था। यदि आपके पास listitem के लिए चयनकर्ता है, तो रूट टैग पर केवल setbackground

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