2010-04-18 26 views
16

मेरे पास एक सूची दृश्य है जो डेटाबेस से रिकॉर्ड के माध्यम से पॉप्युलेट किया गया है। अब मुझे कुछ रिकॉर्ड दिखाना है लेकिन चयन के लिए अनुपलब्ध है, मैं इसे कैसे प्राप्त कर सकता हूं?सूची दृश्य में आइटम कैसे अक्षम करें?

यहाँ मेरी कोड

public class SomeClass extends ListActivity { 
    private static List<String> products; 
    private DataHelper dh; 
    public void onCreate(Bundle savedInstanceState) { 
     dh = new DataHelper(this); 
     products = dh.GetMyProducts(); /* Returns a List<String>*/ 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.myproducts, products)); 
     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 
     lv.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

लेआउट फ़ाइल myproducts.xml इस प्रकार है:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="16sp"> 
</TextView> 

उत्तर

31

सच लौटने के लिए ArrayAdapter है कि AreAllItemsEnabled() वापसी झूठी की अपनी खुद की उपवर्ग करें, और परिभाषित isEnabled(int position)/आपके डेटा सेट में दिए गए आइटम के लिए गलत।

+13

इस समाधान से सावधान रहें। बेसएडाप्टर का प्रलेखन निम्न में बताता है "यदि निर्दिष्ट स्थिति पर आइटम विभाजक नहीं है तो सत्य लौटाता है।" इसका मतलब है कि यदि आप झूठी वापसी करते हैं तो आइटम एक विभाजक वस्तु है। कुछ फोन एंड्रॉइड नहीं खींच सकते हैं: एक सामान्य आइटम और विभाजक आइटम के बीच विभाजक। – Janusz

+2

यह निश्चित रूप से सच है और मैंने पहले उस मुद्दे में भाग लिया है; मैंने या तो पंक्ति लेआउट में स्वयं को विभाजित किया है और इसे getView() में दिखाया/छुपाया है, या आइटम सक्षम किए गए हैं लेकिन उन पर क्लिक अनदेखा कर दिया है और ऐसी पृष्ठभूमि सेट की है जिसमें दबाए गए राज्य न हों ताकि वे न दिखें क्लिक करने योग्य। –

+0

आपकी सूची में अनुभाग रखने के लिए "शीर्षक" डिवाइडर रखने के लिए बढ़िया! – htafoya

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