关于listView的复用问题,复用出错,重复出现,这个问题是listView的复用机制导致的,为了节省资源
解决办法是:
1.通过在bean类里设置一个标记 如:
private boolean isSelect;
public boolean isSelect() {
return isSelect;
}
public void setSelect(boolean select) {
isSelect = select;
}
默认为false 就是未选中状态,并设置get set方法
2.然后在listview适配器里判断这个标记 如:
//解决复用的 如果当前标记为选中状态那么执行操作
if (mlist.get(position).isSelect()){
holder.mListViewText.setTextColor(Color.RED);
}
//如果不是选中状态 执行操作
else {
holder.mListViewText.setTextColor(Color.BLACK);
}
在点击事件里的处理 如:
//一进点击事件默认把所有item的isSelect设为false 表示都没选中
for (int i = 0; i <resultList.size() ; i++) {
yuedoubaen.ResultListBean resultListBean = resultList.get(i);
resultListBean.setSelect(false);
}
//这是为了重复点击使用 比如点一次颜色红了 再点一次颜色黑了 如此循环
//然后点击那个 把那个设为和当前相反的状态 比如当前为false设为true 当前为true设为false
//resultList.get(position).setSelect(!resultList.get(position).isSelect());
//点哪个那个为true 表示选中
resultList.get(position).setSelect(true);
//在刷新一下适配器就ok
apader.notifyDataSetChanged();