GridView的全选与反选

昨天做照片墙的全选和反选功能时,一直有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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值