0

我有一个包含大量数据的列表。所以过滤文本变化有点慢。所以我想我为什么要一次过滤所有数据。我想过滤将在 ListView 中显示的有限数据。现在的问题是我怎么知道 ListView 何时会从特定索引中询问下 20 个数据?

更多说明: 我有一个 ListView 名称列表、一个适配器、一个包含 2 万条数据的列表和一个小列表(已过滤)。我覆盖 getView 并提供过滤列表中的数据。

我想做什么?: 当 ListView 需要数据(发生滚动或新数据事件)时,在大列表中过滤或搜索,直到获得下一个 20 或 25 个数据,然后将它们设置在过滤后的列表中并在 listView 中显示使用 getView。那么我怎么知道 listView 什么时候需要下一个或上一个 20 个数据呢?

4

1 回答 1

0

您首先对所有数据进行排序,然后将排序后的数据传递给适配器并使用 ViewHolder 模式。不要在适配器中使用排序。适配器本身调用列表视图中的可见索引数据。ViewHolder 链接: http ://myandroidsolutions.blogspot.com/2012/07/android-listview-tutorial.html

加载ListView更快,比Viewholder方法更快

为具有不同项目布局的 ListView 创建 ViewHolders

如果您需要当前获取列表视图的可见范围,您可以将 OnScrollListener 设置为列表视图,在这里您可以获得可见范围,您可以调用适配器的 notifyDataChanges 方法来更新列表视图。

于 2013-04-05T20:19:39.260 回答