[英]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.