在应用中大家可能会碰到一些场景 比如 一个listview 删除选中条目
这需要去查找选中项并移除 但是list 集合 坐标会前移 所以第二次删除的时候就会有找不到的清空也就是空指针或者其他问题
解决方案有两个 一个是用迭代器另外一个就是倒序list删除
迭代器
Iterator it = appAdapter.getData().iterator();
while (it.hasNext()) {
Appli appli = (Appli) it.next();
if (appli.isCheck) {
it.remove();
}
}
倒序删除
for (int i = groupFileorPhotoList.size()-1; i >=0; i--) {
List<ChildFileorPhoto> photos = groupFileorPhotoList.get(i).getChildFileorPhoto();
for (int j = photos.size()-1; j >=0; j--) {
ChildFileorPhoto childPhoto = photos.get(j);
if (childPhoto.isCheck()) {
photos.remove(childPhoto);
if (!(photos.size()>0)) {//如果childe数据集合不大于0 就说明childe被清空就要移除掉当前grouitem
groupFileorPhotoList.remove(i);
}
}
}
}
本文介绍了解决List视图删除元素时遇到的问题——如何避免因元素删除导致的坐标前移而引发的空指针异常或其他错误。提供了两种实用方案:使用迭代器遍历删除及采用倒序方式移除元素。
4008

被折叠的 条评论
为什么被折叠?



