2012-10-30 24 views
30

मेरे पास एक सूची दृश्य है कि मैं अपने डेटाबेस से मूल्यों के साथ पॉपुलटिंग कर रहा हूं। यदि डेटाबेस खाली है, तो मैं सूची दृश्य का पहला आइटम "कोई डेटा नहीं" पर सेट कर रहा हूं। मैं इस आइटम पर क्लिक करना अक्षम करना चाहता हूं। मैंने ArrayAdapter का उपयोग किया है। मैंने सभी आइटम्स बनाने की कोशिश की है, सक्षम है, लेकिन यह कोई उपयोग नहीं था। यहां तक ​​कि अगर मैं ListView's isClickable सेट करता हूं और सेट को गलत पर सेट करता हूं, तो इसका कोई उपयोग नहीं है। और मैंने ऑनआईटमक्लिक लिस्टनर के लिए अन्य शर्त में कोड डाला, यहां तक ​​कि सूची आइटम को क्लिक करने योग्य नहीं होने से रोकता है। क्या किसी के पास वैकल्पिक समाधान है? धन्यवाद!एंड्रॉइड में ListView पर क्लिक करने को अक्षम कैसे करें?

उत्तर

87

कर IsEnabled फ़ंक्शन का उपयोग ArrayAdapter झूठी वापस जाने के लिए:

@Override 
public boolean isEnabled(int position) { 
    return false; 
} 

हमेशा मेरे लिए काम करता है।

+0

मेरे लिए भी काम किया !! –

+0

रॉकिंग ... यह ठीक काम है .. – vabhavsingh

+0

अक्षम करने के बाद मैं फिर से सक्षम कैसे कर सकता हूं? –

9

आप के रूप में दिखाया खाली देखें सेट कर सकते हैं और यह अपने आप नियंत्रित किया जाएगा:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingLeft="8dp" 
     android:paddingRight="8dp"> 

    <ListView android:id="@android:id/list" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="#00FF00" 
       android:layout_weight="1" 
       android:drawSelectorOnTop="false"/> 

    <TextView android:id="@android:id/empty" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="#FF0000" 
       android:text="No data"/> 
</LinearLayout> 
+2

मदद कर सकते हैं! यह न केवल प्रश्न का उत्तर दे रहा है बल्कि यह एक खाली सूची को संभालने का एक बेहतर तरीका भी सुझाता है! – chuky

0

शायद आप, अगर बयान OnClick में सूचीदृश्य प्रविष्टि की सामग्री की जाँच करने के लिए एक इस्तेमाल कर सकते हैं अगर यह 'शामिल नहीं डेटा 'कुछ भी नहीं है, और अपने कस्टम में हमेशा की तरह

2

उस सूची के लिए एडाप्टर बनाते हैं, और वहाँ इस विधि

public boolean isEnabled(int position); 

ओवरराइड तो लौट false जब आप क्लिक

13

सब आसान अक्षम करना चाहते हैं! list.setEnabled (गलत)

+0

बहुत बहुत धन्यवाद! यह मेरे लिए काम किया, उपरोक्त सभी मेरे लिए काम नहीं किया .. –

+2

बुरा! यह स्क्रॉलिंग रोकता है। –

0

मैं अपने आवश्यकता के अनुसार इस तरह से किया था यह स्वीकार किए जाते हैं जवाब होना चाहिए आशा है कि यह आप कुछ कैसे

@Override 

public boolean isEnabled(int position) { 
     if(data.get(position).isClickable==false) 
     { 
      return false; 
     } 
     return super.isEnabled(position); 
    } 
संबंधित मुद्दे