繁体   English   中英

如何在Android的延迟加载列表中实现本地搜索

[英]How to implement Local search in a lazy loaded list in android

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

谢谢

考虑使用Recyclerview。 即使有大量的物品,也可以提高设备的性能。

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

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

做一件事使您要用于列表视图项目的另外两个数组列表。

让originalArrayList,searchArrayList和tempArrayList

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

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

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

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

我希望这可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM