10

Trong ứng dụng Android của tôi, tôi đang sử dụng Sqlite DataBase để lưu trữ dữ liệu từ máy chủ. Tôi đang sử dụng ContentProvider và ContentResolver để truy cập dữ liệu từ DataBase và sử dụng CursorAdapter để liên kết dữ liệu với ListView. Ngay sau khi dữ liệu được chèn vào DataBase, CursorAdapter sẽ được thông báo để cập nhật ListView. Ngoài ra, bất cứ khi nào tôi cuộn ListView, tôi nhận được dữ liệu mới từ bảng DataBase và ListView sẽ được cập nhật. Nhưng một khi tôi đạt đến cuối hàng của bảng, tôi cần lấy dữ liệu trực tiếp từ máy chủ mà không lưu trữ vào DataBase và cập nhật nó trong ListView. Bây giờ khi tôi đang sử dụng CursorAdapter mà chấp nhận dữ liệu con trỏ, làm thế nào tôi có thể ràng buộc một tập dữ liệu mới mà không đến từ DataBase? Có thể tạo dữ liệu con trỏ mà không nhận dữ liệu từ DataBase và sử dụng phương thức ChangeCursor() trong ContentProvider để cập nhật ListView không? Nếu không, có phương pháp nào khác để đạt được điều tương tự không?Cách tạo dữ liệu Con trỏ mà không nhận dữ liệu từ ứng dụng DataBase trong Android?

Trả lời

9

Là có thể tạo dữ liệu Cursor mà không nhận được dữ liệu từ DataBase và sử dụng phương pháp ChangeCursor() trong ContentAdapter để cập nhật ListView?

Có, bạn có thể tạo con trỏ bằng cách sử dụng MatrixCursor. Nếu bạn sẽ phải hợp nhất MatrixCursor với cơ sở dữ liệu Sử dụng con trỏ MergeCursor.

+0

Cảm ơn câu trả lời của bạn. Vì vậy, nơi chính xác tôi phải hợp nhất các con trỏ. Nó có nên được thực hiện trong phương thức onLoadFinished() hoặc phương thức query() của ContentProvider trong khi gọi hàm cursor.setNotificationUri() không? – Vivek

+0

Trong onLoadFinished() nhưng bạn có lẽ nên tải xuống dữ liệu từ máy chủ trước khi bạn bắt đầu trình tải (nếu có thể) hoặc trình tải làm mới nếu bạn hoãn tải xuống. – Leszek

Các vấn đề liên quan