Android Listview在滚动时重复项

时间:2018-11-27 10:05:22

标签: android listview

我看过其他线程,但看不到listadapter出了什么问题。我有视图持有者模式,并且要在convertview null检查语句之外设置列表项的所有值。我不确定还有哪些其他原因会使它重复这些项目。

World

1 个答案:

答案 0 :(得分:2)

问题出在这里

holder.job = getItem(position);

请记住,在滚动时视图可能会被回收,如果以这种方式分配,分配的作业可能会无意用于其他位置。要解决此问题,只需在if-else条件之后分配作业:

if (convertView == null) {
    // ...
} else {
    // ...
}

holder.job = getItem(position); // Update the job by position
holder.routeOrder.setText(holder.job.getRouteOrder() + "");
holder.location.setText(holder.job.getLocation());
holder.jobRef.setText(holder.job.getJobReference());