对checkBox做选择判断时,请求需要传递id(JSONArray)

当我们需要对一个实体类bean进行选择判断,我们一般用checkBox来做监听,根据网络请求传递一个存放不同的实体id的jsonArray()数组。

以前我一般的思路:给bean多加一个boolean型的属性isSelect,标记bean选择的状态。声明一个存放id类型的selectList数组,如果isSelect为true,将选中的id先遍历一遍selectList,如果selectList里含有此id,就退出循环,如果没有就加进去,保证不加重复的id,一个数组还好,如果再加一个取消的操作,你还得在加一个取消的数值cancelList,然后再进行判断,挺麻烦,挺绕的。

现在,有了一个好的思路:用Set集合来存放id,它有唯一性,你可以不用自己去判断重复没重复。

一、下边我来展示一下主要的代码

private Set<String> selectSet;// 选中的item
private Set<String> cancelSet;// 取消的item

selectSet = new HashSet<String>();
cancelSet = new HashSet<String>();


// adapter给出的监听接口
    @Override
    public void setItemSelect(MonthVisitShopInfo shopInfo) {
        String itemId = String.valueOf(shopInfo.getMonthsdId());
        if (shopInfo.isSelect()) {// 选中
            if (shopInfo.getUsed() == 0) {
                selectSet.add(itemId);
            }
            //如果cancelSet没有这个item的话,也不会报错的
            cancelSet.remove(itemId);
        } else {// 取消
            selectSet.remove(itemId);
            if (shopInfo.getUsed() == 1) {
                cancelSet.add(itemId);
            }
        }

    }

二、在这里提供一下把 将Set数组转换成JSONArray的方法

/**
     * 将Set<>()转换成JSONArray
     * **/
    public void toArray(Collection<String> list, JSONArray array) {
        if (null != list && list.size() > 0) {
            for (String item : list) {
                array.put(item);
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值