了解listview回收如何工作
您不能回收当前正在使用的行.以上链接解释了listview回收机制的工作原理
So What is the benefit of using ViewHolder?
引用文件
您的代码可能会在ListView滚动期间频繁调用findViewById(),这可能会降低性能.即使适配器返回一个充气视图进行回收,您仍然需要查找元素并进行更新.重复使用findViewById()的方法是使用“view holder”设计模式.
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) { // if convertView is null
convertView = mInflater.inflate(R.layout.mylayout,
parent, false);
holder = new ViewHolder();
// initialize views
convertView.setTag(holder); // set tag on view
} else {
holder = (ViewHolder) convertView.getTag();
// if not null get tag
// no need to initialize
}
//update views here
return convertView;
}
你错过了重要的部分convertView.setTag(holder)和holder =(ViewHolder)ConvertView.getTag()