标签:android 手机管家 listview复用 listview中item带有check
在ListView的item中,当带有CheckBox的时候,用户点击选中第一个CheckBox的时候,往下拖动,发现下面没有选中的CheckBox也被选中了,好恶心啊!很简单,这是因为convertView复用带来的问题,在这个问题上,通常不会让CheckBox自己记住他自己的状态,选择在业务bean中记住CheckBox的状态,在业务bean中新增一个filed:
private boolean checked;
lv_task_manager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TaskInfo taskInfo; if (position == 0) { // 不响应点击事件 return; } else if (position == (userTaskInfos.size() + 1)) { // 不响应点击事件 return; } else if (position <= userTaskInfos.size()) { taskInfo = userTaskInfos.get(position - 1); } else { taskInfo = systemTaskInfos.get(position - 1 - userTaskInfos.size() - 1); } System.out.println("--------------" + taskInfo.toString()); ViewHolder viewHolder = (ViewHolder) view.getTag(); if (taskInfo.isChecked()) { taskInfo.setChecked(false); viewHolder.cb_status.setChecked(false); }else { taskInfo.setChecked(true); viewHolder.cb_status.setChecked(true); } } });在adapter设置CheckBox的状态:
viewHolder.cb_status.setChecked(taskInfo.isChecked());
77ListView中item带有CheckBox复用缓存的问题(重点)(数据错乱)
标签:android 手机管家 listview复用 listview中item带有check
原文地址:http://blog.csdn.net/chenfuduo_loveit/article/details/42105425