0

我有一個包含大量數據的列表,所以我已經實現了延遲加載到列表中,每次向下滑動加載10個項目。但我陷入了一個場景,即,我一次加載10個項目,但如果任何用戶想要使用searchview進行搜索,我必須搜索整個數據庫並準備與此結果相同的列表,並且當searchview被清除時,我必須加載之前加載的列表。任何人都可以幫助我解決這個問題嗎?由於安全原因,我沒有發佈代碼。請提出解決方法。如何實現本地搜索在Android中的延遲加載列表中

謝謝

回答

1

考慮使用Recyclerview。即使物品數量巨大,它也會提高設備的性能。

您可以將所有物品(可以說1000個物品)與cardview一起放置在recyclerview中。所以不需要擔心刷卡和加載功能。您的所有物品都將存儲在recyclerview適配器的視圖模型中。您可以在適配器內執行搜索並顯示過濾結果(假設列表中的數據不是特別巨大)。

https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html

+0

所以,你說我一次加載所有的項目?我只使用recyclerView。但我不確定,正如你所說我有超過1000個項目,而且每個列表項目也很複雜,至少要加載10個字段才行? – ImGenie

+0

我用5000items使用recyclerview,它完美的作品。我正在談論一個複雜的卡片視圖有很多的信息。 – Dilberted

1

做一件事讓你正在使用列表視圖項兩個數組列表。

讓originalArrayList,searchArrayList & tempArrayList

步驟1)負載10項originalArrayList &副本tempArrayList所有項目也隨後與originalArrayList通知列表視圖。

步驟2)添加文字更改偵聽searchEdittext

步驟3)檢查searchEdittext的OntextChanged方法如果searchEdittext的大小,如果大於1,則搜索你的數據庫,並把elemnts排在第二的ArrayList即searchArrayList後結算originalArrayList添加searchArrayList的所有項目都放到originalArrayList通知適配器

步驟4)如果searchEdittext大小OntextChanged方法是0,則明確originalArrayList添加tempArrayList的所有項目都放到originalArrayList通知適配器

我希望這會做的伎倆。