2014-01-15 105 views
7

我身邊有100的存儲在其中需要根據基於像,每週一次,下週,下個月需求列表視圖來顯示它們的數據庫時間表,在時間表因等..最好使用光標適配器或陣列適配器

是好上加載啓動應用程序的所有日程,並顯示他們根據在陣列適配器選項用戶選擇(每週,逾期,每月等)。或者在運行時使用查詢,從數據庫獲取結果並使用cusor使用cusoradapter?在listview上加載數據。

哪種方法effeciant?我覺得總是詢問DB是expesive操作?這是真的嗎?

+0

http://stackoverflow.com/questions/8556929/cursoradapter-vs-arrayadapter-for-a-listview請看看這個 – 2014-01-15 06:05:45

+0

'請點擊左邊的複選標記來解決您的問題你most' – 2014-01-23 09:02:34

+0

中超,做@ user3110424,感謝和抱歉延遲:) – Naruto

回答

11

在你的情況下,當存在數據庫時,CursorAdapter更合適,因爲它不會將所有記錄加載爲ArrayAdapter。它僅加載可見記錄或正在查詢的記錄。以下是CursorAdapter的文檔:

將數據從光標公開到ListView小部件的適配器。

光標必須包含一個名爲「_id」列或這個類將無法正常工作。此外,如果合併的遊標在其「_id」列中具有重疊值,則對此類使用MergeCursor將不起作用。

由於Content provider的文檔,所以它可能對你沒用。

如果使用完全在您自己的應用程序中,則不需要提供者使用SQLite數據庫。

您可以選擇CursorAdapter而不是ArrayAdapter

+0

做,我們需要使用裝載機使用光標適配器? – Naruto

+1

如果你願意,你可以使用裝載機光標適配器看到這個[如何CursorLoader與LoaderManager知道光標發送到一個CursorAdapter?](http://stackoverflow.com/questions/11150527/how-does-cursorloader-with- loadermanager-know-to-send-the-cursor-to-a-cursoradap) – 2014-01-15 07:29:59

+0

感謝您使用有用的鏈接(+1 for tat),這裏有一件事情,內容提供者和加載者都依賴於彼此嗎?裝載機?你能澄清我的疑問嗎?謝謝 – Naruto

0

更好地利用CursorLoader

CursorLoader一個運行在對一個ContentProvider的背景中的異步查詢,並將結果返回到從它被稱爲活性或FragmentActivity。這允許Activity或FragmentActivity在查詢進行時繼續與用戶交互。

裝載機 Android中3.0引入,裝載機可以很容易在一個活動或片段異步加載數據。

+0

支持舊版本V2.2,2.3版本的手機怎麼樣? – Naruto

+0

@LLL工作在較低版本,如2.2,2.3使用android-support-v4.jar。就像在API-11中引入的Fragment一樣,但是在支持庫的幫助下,它也在API上工作。 –

+0

好的,看起來很酷。現在我已經完成了我的一半工作,使用arrayadapters和一個基本的工藝,所以這些cusors使我的工作變得簡單。它更好地使用cusors ?. – Naruto