我有一个包含大量数据的List。因此,对文本更改进行过滤有点慢。所以我想我为什么要一次过滤所有数据。我想过滤有限的数据,这些数据将在ListView中显示。现在的问题是,当ListView要求来自特定索引的下一个20个数据时,我怎么知道?
更多解释 我有一个ListView名称列表,一个适配器,一个包含2万个数据的List和一个小列表(已过滤)。我重写了getView并从过滤列表中提供数据。
我想做什么?: 当ListView需要数据(发生滚动或新数据事件)时,过滤或搜索大列表,直到我将获得下一个20或25个数据,然后将它们设置为过滤列表并使用getView在listView中显示它们。那么我怎么知道listView需要下一个或前一个20个数据?
答案 0 :(得分:0)
首先对所有数据进行排序,然后将排序数据传递给适配器并使用ViewHolder模式。不要在适配器中使用sort。适配器本身调用listview中的可见索引数据。 ViewHolder链接: http://myandroidsolutions.blogspot.com/2012/07/android-listview-tutorial.html
Faster loading ListView, faster than the Viewholder method
Creating ViewHolders for ListViews with different item layouts
如果你需要当前获取列表视图的可见范围,你可以将OnScrollListener设置为listview,在这里你可以获得可见范围,你可以调用适配器的notifyDataChanges方法来获取更新列表视图。