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通知适配器

我希望这会做的伎俩。