Vì vậy, sau khi tôi thiết lập các bộ lọc trên listview của tôi:android - listview đếm lọc
//Log adapter count before filter
listView.getFilter().filter(searchStr)
//Log adapter count after filter
Những gì tôi đang cố gắng để đạt được là để có được số lượng của các kết quả của lọc đó. Giống như trước khi có 10 mục, sau đó tôi áp dụng bộ lọc, vì vậy bây giờ chỉ có 5 mục sẽ xuất hiện, tôi muốn nhận được số đó "5". Tôi đã thử kiểm tra số lượng bộ chuyển đổi trước và sau khi bộ lọc không có may mắn. Họ đang hiển thị cùng một số (tôi đang sử dụng một BaseExpandableListAdapter) nếu tôi áp dụng bộ lọc, và nếu tôi áp dụng bộ lọc một lần nữa thay đổi số từ trước (nhưng trước và sau khi bộ lọc vẫn như cũ).
Dưới đây là một kết quả mẫu của những gì tôi nhận được trên nhật ký của tôi:
Before filter the count is 10. After filter the count is 10.
Before filter the count is 8. After filter the count is 8.
Tôi nghĩ có lẽ bộ chuyển đổi của tôi không lấy số liệu phản ánh ngay lập tức nhưng trên bộ lọc thứ hai, nó thay đổi giá trị , vì vậy tôi nghĩ notificationDataSetChanged sau khi bộ lọc sẽ tạo sự khác biệt, nhưng nó không. Bất kỳ trợ giúp sẽ được đánh giá cao.
Cảm ơn.
điều này thực sự giải quyết được vấn đề gốc, cộng với một vấn đề khác: danh sách của tôi xuất hiện với tất cả các phần tử trong một giây, do bộ lọc chạy trong Asynctask trong suốt và setAdapter được gọi trước khi publishResults thực sự xảy ra – leRobot
Thiếu) ; \t trong mã của bạn ,,, bộ lọc mở gần của nó (nhưng không có khung đóng. Cũng thêm); ở cuối – sasikumar