Hey tôi sử dụng một listview cho các mục minh chứng được lưu trữ trong cơ sở dữ liệu. Tôi cũng có một phần tử EditText và một nút để thêm nội dung của EditText vào Cơ sở dữ liệu. Để ràng buộc nhằm nội dung cơ sở dữ liệu tôi sử dụng các SimpleCursorAdapter và sau chức năng populate:Android ListView cập nhật với SimpleCursorAdapter
private void populate() {
cursor = dbAdapter.getAllItems();
startManagingCursor(cursor);
String[] from = new String[] { DBAdapter.KEY_TASK };
int[] to = new int[] { android.R.id.text1 };
// Now create an array adapter and set it to display using our row
cursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to);
list.setAdapter(cursorAdapter);
}
Nếu tôi thêm một mục mới, bằng cách nhấp vào nút i muốn làm mới listview nhưng điều này chỉ hoạt động với chức năng populate và không có chức năng bộ điều hợp chung notifyDataSetChanged();
. Tôi có một lỗi hoặc là cách này để làm mới một listview?
Chỉ cần đề cập: 'requery()' đã không còn được dùng nữa. [Tài liệu] (http://developer.android.com/reference/android/database/Cursor.html#requery()) có một bản ghi rõ ràng về điều này. – 87element
Tôi biết, tôi đã không hoàn toàn từ câu đó đúng, nói lại nó:> – Jack
Hey Jack cảm ơn bạn đã trả lời của bạn, tôi thấy rằng tôi quên nói mã trên là của tôi 'populate()' chức năng tôi gọi nó trong phương thức 'onCreate()' của tôi và nếu tôi nhấp vào nút "Add" -Button. Tôi chỉ muốn biết liệu đây có phải là một giải pháp tốt để gọi phương thức này thay vì gọi phương thức 'notifyDataSetChanged()' phổ biến của lớp bộ điều hợp cơ sở. –