2009-10-08 24 views
14

Tôi muốn biết cách làm mới ListActivity khi tôi thay đổi/thêm dữ liệu vào đó. Lần đầu tiên tôi nghĩ rằng ListAdapter sẽ biết khi danh sách là thay đổi, nhưng khi tôi đã thêm các yếu tố vào danh sách không có cập nhật trên ListActivity, chỉ khi tôi đóng ListActivity và mở lại nó, tôi thấy những thay đổi xảy ra.Cập nhật Danh sách AndroidKích hoạt khi dữ liệu danh sách thay đổi?

Vì vậy, tôi đã tìm kiếm bất kỳ phương pháp nào như: update(), refesh() hoặc một cái gì đó tương tự, nhưng không có. Có vẻ như tôi chưa có khái niệm, ai đó có thể giúp tôi không?

Trả lời

22

Nếu bạn đang sử dụng ArrayAdapter, hãy điều chỉnh nội dung của danh sách thông qua bộ điều hợp - không chạm vào danh sách bên dưới. Có các phương thức add(), insert()remove() trên ArrayAdapter.

Nếu bạn đang sử dụng CursorAdapter, hãy chạy requery() trên Cursor.

+0

ok nhờ không có tôi hiểu làm thế nào nó hoạt động –

+0

tôi sử dụng ArrayAdapter và tôi cập nhật hồ sơ. Làm thế nào tôi có thể làm mới ListView? –

+3

Điều này, tất nhiên, không còn được khuyến nghị, vì 'requery()' được thực hiện trên chuỗi giao diện người dùng. Nếu bạn tình cờ gặp phải bài đăng này, bạn nên cân nhắc sử dụng 'Trình tải 'thay thế. –

7

Hãy thử ArrayAdapter: notifyDataSetChanged
Google docs link

+2

Chỉ cần một lưu ý, điều đó không hoạt động nếu không có bất kỳ người quan sát nào được gắn vào bộ điều hợp. – Waltsu

0

Có lẽ bạn nên làm điều này setListAdapter(listAdapter);

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