2013-04-05 54 views
0

我有一個包含大量數據的列表。所以對文本變化進行過濾有點慢。所以我認爲,爲什麼我應該一次過濾所有的數據。我想過濾將在ListView中顯示的有限數據。現在問題是我怎麼知道,當ListView將要求從特定索引的下20個數據?如何找到要在ListView中顯示的數據範圍

更多的解釋: 我有一個ListView名單,一個適配器,它含有20個數據列表,和一個小名單(過濾)。我重寫getView並提供來自過濾列表的數據。

我想要做的?: 的ListView時需要的數據(發生滾動或新數據的事件),過濾器或在大名單中搜索,直到我將獲得未來20點或25的數據是什麼,然後將它們過濾列表並使用getView在listView中顯示它們。那麼我怎麼能知道,當listView需要下一個或前20個數據?

回答

0

您首先對所有數據進行排序,然後將排序數據傳遞給適配器並使用ViewHolder模式。不要在適配器中使用排序。適配器本身在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

,如果你需要的電流得到的ListView的可見範圍內,您可以設置OnScrollListener到ListView和在這裏你可以得到可見光範圍內,並且可以調用notifyDataChanges的方法適配器更新listview。

相關問題