0

我有一个包含大量数据的列表,因此我在列表中实现了延迟加载,每次向下滑动加载 10 个项目。但是我被困在一个场景中,即我一次加载 10 个项目,但是如果任何用户想使用 searchview 进行搜索,我必须搜索整个数据库并准备与此结果相同的列表,当 searchview 被清除时,我必须加载之前加载的列表。谁能帮我解决这个问题。由于安全原因,我没有发布代码。请提出解决此问题的方法。

谢谢

4

2 回答 2

1

做一件事再制作两个用于列表视图项目的数组列表。

让 originalArrayList 、 searchArrayList 和 tempArrayList

步骤 1)在 originalArrayList 中加载 10 个项目并复制 tempArrayList 中的所有项目,然后用 originalArrayList 通知 listview。

步骤 2) 为 searchEdittext 添加文本更改侦听器

步骤 3) 如果 searchEdittext 的大小大于 1,则检查 searchEdittext 的 OntextChanged 方法,然后搜索您的数据库并将元素放在第二个数组列表中,即。searchArrayList 并在清除 originalArrayList 后将 searchArrayList 的所有项添加到 originalArrayList 通知适配器

步骤 4) 如果在 OntextChanged 方法中 searchEdittext 大小为 0,则清除 originalArrayList 将 tempArrayList 的所有项添加到 originalArrayList 通知适配器

我希望这能解决问题。

于 2015-10-15T11:12:36.880 回答
1

考虑使用 Recyclerview。即使有大量项目,它也会提高设备的性能。

您可以将所有物品(比如说 1000 件物品)与 cardview 一起放在 recyclerview 中。所以不需要担心滑动和加载功能。您的所有项目都将存储在 recyclerview 适配器的视图模型中。您可以在适配器中执行搜索并显示过滤后的结果(假设列表中的数据不是特别大)。

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

于 2015-10-15T09:30:23.403 回答