2013-02-11 52 views
11

Tôi đang sử dụng SimpleCursorAdapter không được chấp nhận để hiển thị dữ liệu từ Cursor đến ListView. Tôi đã thêm đối số bổ sung 0, loại bỏ cảnh báo được hiển thị, nhưng tôi muốn sử dụng một cách tốt hơn để hiển thị dữ liệu. Tôi đã đọc một cái gì đó về Loader, nhưng không biết làm thế nào để thực hiện nó. Điều gì sẽ là một lựa chọn tốt hơn cho mã dưới đây? Mã này sẽ được dịch để sử dụng Trình tải như thế nào?Thay thế SimpleCursorAdapter

Cursor c = mDbHelper.getAllRecords(); 
    startManagingCursor(c); //this is also deprecated 

    String[] from = new String[] { "Name" }; 
    int[] to = new int[] { R.id.text1 }; 

    SimpleCursorAdapter names = 
     new SimpleCursorAdapter(this, R.layout.names_row, c, from, to, 0); 
    setListAdapter(names); 
+0

"nhưng tôi muốn sử dụng một cách tốt hơn để hiển thị dữ liệu". Trình tải chỉ đọc dữ liệu từ cơ sở dữ liệu của bạn trên một chuỗi khác, nó không thay đổi cách dữ liệu được hiển thị. Bạn nên thay đổi 'names_row.xml' để thay đổi cách nó được hiển thị. – Sam

+0

Câu hỏi đã được chỉnh sửa. – domen

+1

Chuyển sang Trình tải không phải là vấn đề tầm thường chỉ sử dụng các lớp học Android. Trước tiên, bạn cần tạo một ContentProvider và sau đó triển khai khung công tác Loader. Tuy nhiên [CommonsWare] (http://stackoverflow.com/u/115145/) đã viết [một thư viện Loader] (https://github.com/commonsguy/cwac-loaderex) mà không yêu cầu ContentProviders. Đây là [hướng dẫn] (http://www.grokkingandroid.com/using-loaders-in-android/) bao gồm cả hai cách tiếp cận. – Sam

Trả lời

6

adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from, to, 1);

này sẽ làm requery tự động. 1 được đặt thành true và 0 thành false.

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