Tôi có một ListView trên ứng dụng Android của mình mà tôi tự động thay đổi dữ liệu của. Tôi sử dụng phương thức onFilterComplete()
để thay đổi nội dung của ListView.Danh sách ICS AndroidXem sự cố làm mới
Pre Ice Cream Sandwhich đoạn mã sau hoạt động tốt:
if(adapter != null) {
adapter.notifyDataSetInvalidated();
lview3.invalidateViews();
adapter.getFilter().filter(aa1.getItem(item), new Filter.FilterListener() {
public void onFilterComplete(int count) {
adapter.notifyDataSetChanged();
if(lview3.getCount() == 0){
lview3.setVisibility(View.GONE);
}
else{
lview3.setVisibility(View.VISIBLE);
}
}});
Tuy nhiên trên Ice Cream Sandwhich khi tôi sử dụng bộ lọc màn hình không được làm mới đúng, Nếu bộ lọc trả về một số các mục đó là nhỏ hơn so với ListView trước sau đó danh sách dữ liệu cũ dường như là vẫn còn nhìn thấy ở chế độ nền, theo ảnh chụp màn hình này:
Từ ảnh chụp màn hình bạn có thể thấy nơi entry đầu tiên trong ListView là, đây là tất cả những gì sẽ hiển thị, bạn có thể thấy nơi các kết quả trước vẫn còn nhìn thấy bên dưới, chúng chỉ hiển thị chúng không hoạt động như trong chúng không thể được khai thác, như thể màn hình không làm mới đúng cách .
Khi tôi chọn nút home rời khỏi ứng dụng thông qua màn hình chủ và trở lại tất cả mọi thứ dường như nó phải như trong ảnh chụp màn hình sau đây:
Có cái gì khác tôi phải thực hiện để làm mới đúng ListView trên Ice Cream Sandwhich? Có ai khác gặp phải vấn đề tương tự không?
Những gì tôi có hoạt động tốt trước ICS.
Khi bạn nói "danh sách cũ", bạn thực sự chỉ có nghĩa là dữ liệu cũ trong bộ điều hợp, phải không? Hoặc có nhiều 'ListView' trên đầu trang của mỗi khác? –
Xin lỗi có, ý tôi là dữ liệu được lọc cuối cùng trong bộ điều hợp, chỉ có một ListView trong bố cục và chỉ có một ListView trong mã, không nhiều., Khi tôi rời khỏi màn hình và trả về ListView xuất hiện như trong phần thứ hai ảnh chụp màn hình. –
Như tôi thấy, bộ lọc nên đã gọi datasetChanged trên bộ điều hợp để bạn có thể không phải làm điều đó. Tôi không biết nếu điều này có thể giải thích vấn đề của bạn nhưng nó có giá trị bình luận và thử nó. –