2014-01-26 44 views
1

現在,我使用ListView和ArrayAdapter來顯示來自sqlite的數據。我的舊實現是從數據庫中檢索並設置爲arrayAdapter。然後在listview中設置適配器。光標適配器的用途是什麼?

但現在正考慮轉向高效適配器。如果sqlite有數千條記錄呢?我知道我必須檢索前20個記錄,然後根據滾動檢索下一個項目。我想知道我可以通過使用遊標適配器來實現該實現嗎?或者我可以知道更好的解決方案。

回答

0

你可以涉及一個線程,它從數據庫中檢索數據並放入一個Map或List中。那麼當您從Map中滾動讀取時,需要每20條記錄等數據。它可能會幫助你。

只是使數據庫和視圖之間的另一層。

1

首先,我使用CursorAdapter的主要原因是,如果sqlite中的數據發生變化,內容將自動更改。如果下面的內容發生變化,我不需要考慮刷新UI。其次,sqlite的querylistview已經做了一些你想要的優化。默認情況下,sqlite將不會提供執行查詢時的所有數據。它使用幻燈片窗口逐漸給出查詢結果。並且listview也不會一次繪製所有項目,它會在用戶向下滾動時繪製項目。

希望這會有所幫助,但並不完全回答你的問題

1

在數據庫/服務器響應,或是你從獲取的信息有成千上萬的記錄時,最好的做法是執行使用「延遲加載「技術,基本上它所做的就是向用戶顯示數據塊的大小,例如當時有50個元素,因此,不需要加載950個甚至可能不被使用的元素,這種技術大大提高了應用程序的響應速度,你的記憶也是如此,現在你如何實現它真的取決於你,有一個BaseAdapter類可以自己完成,或者一個好的Cursor/Array適配器實現也可以實現。

重要的是要提的是光標有一個優勢:

光標會讓Android通過檢索 和需求釋放的行和列值更有效地管理資源。

希望它有幫助!

問候!