2013-02-11 86 views
11

我使用棄用的SimpleCursorAdapter來顯示從光標到ListView的數據。我添加了額外的參數0,它刪除了代表性警告,但我想用更好的方式顯示數據。我已閱讀了一些關於Loader的內容,但不知道如何實現它。下面的代碼會是更好的替代方案嗎?這段代碼如何翻譯成使用Loader?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

「但我想用更好的方式來顯示數據。」 Loader只能從另一個線程的數據庫中讀取數據,並不會改變數據的顯示方式。你應該改變'names_row.xml'來改變它的顯示方式。 – Sam 2013-02-11 17:03:28

+0

已編輯的問題。 – domen 2013-02-11 17:44:19

+1

只使用Android類切換到加載器並不是一件簡單的事情。您需要首先創建一個ContentProvider,然後實現Loader框架。然而[CommonsWare](http://stackoverflow.com/u/115145/)已經寫了[一個Loader庫](https://github.com/commonsguy/cwac-loaderex),它不需要ContentProvider。這是[教程](http://www.grokkingandroid.com/using-loaders-in-android/),涵蓋了兩種方法。 – Sam 2013-02-11 17:56:04

回答

6

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

這將做自動重新查詢。 1設置爲true,0設爲false。