Tôi có Android ListActivity
được hỗ trợ bởi cơ sở dữ liệu Cursor
qua một SimpleCursorAdapter
.Android SimpleCursorAdapter không cập nhật khi thay đổi cơ sở dữ liệu
Khi các mục được nhấp, một trường cờ trong hàng coresponding trong cơ sở dữ liệu được bật và chế độ xem trong danh sách cần được cập nhật.
Vấn đề là, khi quan điểm cho rằng được cập nhật sẽ tắt màn hình và được tái chế, giá trị cũ sẽ được hiển thị trên giao diện khi nó trả về vào xem. Điều tương tự cũng xảy ra khi danh sách thr được vẽ lại (thay đổi định hướng, v.v.).
Tôi sử dụng notifydatasetchanged()
để làm mới bộ điều hợp con trỏ nhưng có vẻ như không hiệu quả.
Tôi nên cập nhật cơ sở dữ liệu như thế nào để con trỏ cũng được cập nhật?
Vì vậy, những gì hiện notifydatachanged làm gì? – CodeFusionMobile
Không có "notifydatachanged". Nếu bạn có nghĩa là notifyDataSetChanged() trên Adapter, đó là cách SimpleCursorAdapter nói với ListView rằng dữ liệu đã được thay đổi. Để trích dẫn từ tài liệu, "Thông báo cho Chế độ xem được đính kèm rằng dữ liệu cơ bản đã được thay đổi và nó sẽ tự làm mới". Tuy nhiên, vấn đề của bạn không phải là với Adapter nói cho ListView về sự thay đổi - vấn đề của bạn là Adapter không biết dữ liệu đã thay đổi. Gọi requery() là cách để giải quyết vấn đề đó với một CursorAdapter. – CommonsWare
Điều đó có ý nghĩa ngay bây giờ. Tôi hiểu lầm luồng dữ liệu. – CodeFusionMobile