我在向下滚动时尝试更新ListView
时遇到问题:
public void onSwipeRight(ListView listView, int [] reverseSortedPositions) {
LoadFromDB task = new LoadFromDB();
String term;
View v;
int childIndex = reverseSortedPositions[0];
v = listView.getChildAt(reverseSortedPositions[0]);
tv = (TextView)v.findViewById(R.id.tv_ddItem);
}
在我在屏幕上滚动之前,我可以从正确的孩子(行)获得正确的位置和正确的textView。向下滚动后,我得到NullPointerException
。
P.S reverseSortedPositions[0]
始终返回数组中的正确位置。
答案 0 :(得分:1)
ListView没有与数组一样多的子视图 - 它会回收视图。 如果您在屏幕上看到5个项目,则列表总共将有大约10个视图,并且在您滚动时将重复使用它们。基本上,一旦开始滚动,就会失去数组索引与ListView的子视图索引之间的关系。
Chet hasse在ListViews上有关于滑动到删除和删除动画的精彩内容。我建议你从那里开始,它几乎就是你需要的东西(他还提供下载的工作代码示例)。