问题描述
- Android listview重复的问题
- 有谁遇到过这样类似的问题,说说方法呗
简单描述下:
比如我在每个item 里面加一个CheckBox,我随变选一俩个,但是我向下滑动的时候 发现下面重复出现了
解决方案
private static HashMap isSelected = new HashMap();
// 记录状态
HashMap state = new HashMap();
private void initDate() { for (int i = 0; i < approveList.size(); i++) { getIsSelected().put(i false); }}这是关键部分,在点击事件中h.itemBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView boolean isChecked) { if (isChecked) { state.put(position isChecked); getIsSelected().put(position true); } else { getIsSelected().put(position false); state.remove(position); } } }); h.itemBox.setChecked(state.get(position) == null ? false : true);
解决方案二:
这个是因为getView方法的View重用导致的,你可以在数据中添加一个字段记录开关状态,然后在getView方法中每次去判断设置一下开关。
解决方案三:
自己写一个adapter继承自ArrayAdapter或者BaseAdapter来分别处理checkbox吧。
解决方案四:
肯定是你处理getview时有问题,记得在getview中重新填充你的view
解决方案五:
View被重新生成了,用final保证固定~~
解决方案六:
如果你用了 ViewHolder 要注意if else 的完整性
时间: 2024-10-25 20:07:05