GridView的全选与反选

来源:互联网 发布:沭阳美工招聘信息 编辑:程序博客网 时间:2024/04/30 00:54

昨天做照片墙的全选和反选功能时,一直有bug出现,后来花了一些时间,终于是做出来了。

 

1.在已经完成照片墙的adapter内,加入选择图片的List<String>mSelectedImg 变量,

private List<String> mSelectedImg = new ArrayList<>();

 

2,然后在public View getView(final int position, View convertView, ViewGroup parent)内加入判断图片是否选中的if语句

if (mSelectedImg.contains(filePath)){    // 全选时显示所有图片被选中    holder.mCheck.setVisibility(View.VISIBLE);    holder.mImg.setColorFilter(Color.parseColor("#77000000"));    holder.mCheck.setBackgroundResource(R.drawable.image_choose);}else {    // 置于编辑状态下才可以进行点击勾选    holder.mCheck.setVisibility(View.VISIBLE);    holder.mImg.setColorFilter(null);    holder.mCheck.setBackgroundResource(R.drawable.image_not_chose);}

 

3.设置一个外界可以使用的全选代码。

public void selectAll(final List<String> allImages){ //这里只能把mSelectedImg清空,不能清空mImgPaths,否则会有数组越界异常    this.mSelectedImg.clear();    this.mSelectedImg=allImages;}

 

4.设置一个外界可以使用的反选代码。

public void inverse(){    for (int i=0;i<mImgPaths.size();i++){        String mImagePath=mImgPaths.get(i);        if (this.mSelectedImg.contains(mImagePath)){            this.mSelectedImg.remove(mImagePath);        }else {            this.mSelectedImg.add(mImagePath);        }    }}

 

至此,照片墙的全选和反选功能就实现了,要看懂这段代码,必须自己能做出照片墙。

 

0 0
原创粉丝点击