2013-01-31 33 views
9
benim liste görünümü üzerinde filtre ayarlayın Yani sonra

: Ben başarmak için çalışıyorum neandroid - listview filtre sayısı

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

o filtreleme sonucu sayısını elde etmektir. Daha önce 10 öğe varsa, filtreyi uygularım, şimdi sadece 5 öğe görünecek, "5" sayısını elde etmek istiyorum. Adaptör sayımından önce ve sonra adaptör sayımını kontrol etmeyi denedim. Filtreyi uygularsam aynı sayıyı (BaseExpandableListAdapter kullanıyorum) görüntülüyorlar ve tekrar filtre uygularsam, sayı daha öncekinden değişir (ancak filtrenin öncesinde ve sonrasında hala aynıdır). Benim adaptör hemen yansıyan sayımı almaz düşündüm ama ikinci filtrenin üzerine, bu değeri değişir

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

: Aşağıda

benim günlükleri biniyorum ne bir örnek sonucudur Bu yüzden süzgeçten sonra bir fark yaratacağından notifyDataSetChanged düşündüm, ama yoktu. Herhangi bir yardım takdir edilecektir.

Teşekkürler.

cevap

19

Bu ben bunu nasıl başardığını: Ben ExpandableListView kullanıyorum

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

bu aslında bana orijinal sorunu, artı başka bir sorunu çözdü: benim liste, filtre Asynctask şeffaf bir şekilde çalıştığı için ve saniyeler içinde yayınlanmaya başladığında yayınlamaResults gerçekte – leRobot

+1

eksik oldu, çünkü bir saniyenin bir kesir için tüm öğeleri ile görünmüyordu) ; \t kodunuzda, açık yakın filtrede (ancak yakın bracket.so eklemeyin); sonunda – sasikumar

-1

Filtreyi uyguladıktan sonra listview.getCount() numaralı telefonu aramayı deneyin.

+0

. Ve bunu kullanarak grup her gruptaki çocuk sayısını saymaz. – lorraine