2013-01-31 11 views
9

तो बाद मैं अपने सूचीदृश्य पर फ़िल्टर सेट:एंड्रॉयड - सूचीदृश्य फिल्टर गिनती

//Log adapter count before filter 
listView.getFilter().filter(searchStr) 
//Log adapter count after filter 

मैं क्या हासिल करने की कोशिश कर रहा हूँ कि छानने का परिणाम की गिनती प्राप्त करने के लिए है। जैसे कि 10 आइटम होने से पहले, तो मैं फ़िल्टर लागू करता हूं, इसलिए अब केवल 5 आइटम दिखाई देंगे, मैं उस गिनती को "5" प्राप्त करना चाहता हूं। मैंने भाग्य से पहले और बाद में एडाप्टर गिनती की जांच करने की कोशिश की है। यदि मैं फ़िल्टर लागू करता हूं, तो वे एक ही गिनती प्रदर्शित कर रहे हैं (मैं बेसएक्सपेंडेबल लिस्ट एडाप्टर का उपयोग कर रहा हूं), और अगर मैं फ़िल्टर को फिर से लागू करता हूं तो संख्या पहले से बदलती है (लेकिन फिल्टर के पहले और बाद में भी वही है)।

Before filter the count is 10. After filter the count is 10. 
Before filter the count is 8. After filter the count is 8. 

मुझे लगा मेरी अनुकूलक तुरंत परिलक्षित गिनती नहीं होती है लेकिन दूसरे फिल्टर पर, यह मूल्य परिवर्तन:

नीचे मैं अपने लॉग पर क्या हो रहा है का एक नमूना परिणाम है , इसलिए मैंने सोचा था कि फ़िल्टर के बाद डेटाटाट चेंज किया जाएगा, लेकिन ऐसा नहीं हुआ। किसी भी सहायता की सराहना की जाएगी।

धन्यवाद।

उत्तर

19

यह कैसे मैं यह कर में कामयाब रहे है:

myAdapter.getFilter().filter(searchText, new Filter.FilterListener() { 
    public void onFilterComplete(int count) { 
     Log.d("log", "result count:" + count); 
    } 
}); 
+0

यह वास्तव में मुझे मूल समस्या हल करता है, साथ ही दूसरा: मेरी सूची एक दूसरे के अंश के लिए सभी तत्वों के साथ दिखाई दे रही थी, इस तथ्य के कारण फ़िल्टर फ़िल्टर असीमित में पारदर्शी रूप से चलता है, और सेट एडाप्टर को प्रकाशित करने से पहले बुलाया जा रहा था परिणाम वास्तव में – leRobot

+1

गुम हो गया) ; आपके कोड में \t, यह फ़िल्टर के नजदीक खुला है (लेकिन कोई करीबी ब्रैकेट.सो जोड़ें); अंत में – sasikumar

-1

फ़िल्टर लागू करने के बाद listview.getCount() पर कॉल करने का प्रयास करें।

+0

मैं ExpandableListView उपयोग कर रहा हूँ। और उस रिटर्न का उपयोग करके समूह प्रत्येक समूह पर बच्चे की गणना नहीं करता है। – lorraine

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