listView和checkBox因为listView的复用导致错乱

               checkBox因为listView的复用导致滑动的的时候会错乱,未勾选的变成勾选的,勾选的不见了等.......

              解决方案:

             1.在bean类中添加一个selected

public static class AllBean {
    private String mobile;
    private String state;
    private String NickName;
    private String UserName;
    private String UserHeadImg;
    private String remark;
    private boolean selected;

    public AllBean(String mobile, String nickName, String userPic, String remark, String state, String username) {
        this.mobile = mobile;
        this.NickName = nickName;
        this.UserHeadImg = userPic;
        this.remark = remark;
        this.state = state;
        this.UserName = username;
    }

    public boolean isSelected() {
        return selected;
    }

    public void setSelected(boolean selected) {
        this.selected = selected;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getNickName() {
        return NickName;
    }

    public void setNickName(String NickName) {
        this.NickName = NickName;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String UserName) {
        this.UserName = UserName;
    }

    public String getUserHeadImg() {
        return UserHeadImg;
    }

    public void setUserHeadImg(String UserHeadImg) {
        this.UserHeadImg = UserHeadImg;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}

2.第二步

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    //----->这里第一步
    final GetJoinGroupListBean.AllBean info = (GetJoinGroupListBean.AllBean) getItem(position);
    if (convertView == null) {
        convertView = LayoutInflater.from(context).inflate(R.layout.item_join_group_list, null);
        holder = new ViewHolder();
        holder.ll_join_group = (LinearLayout) convertView.findViewById(R.id.ll_join_group);
        holder.cb_join_group = (CheckBox) convertView.findViewById(R.id.cb_join_group);
        holder.item_tv_join_group_name = (TextView) convertView.findViewById(R.id.item_tv_join_group_name);
        holder.item_iv_join_group_touxiang = (ImageView) convertView.findViewById(R.id.item_iv_create_join_group_touxiang);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //如果是群成员的话就不能再选
    if (lists.get(position).getState().equals("1")) {
        holder.ll_join_group.setEnabled(false);
        holder.cb_join_group.setEnabled(false);
        holder.cb_join_group.setButtonDrawable(convertView.getResources().getDrawable(R.drawable.btn_check_box_nor));
    } else {
        holder.ll_join_group.setEnabled(true);
        holder.cb_join_group.setEnabled(true);
        holder.cb_join_group.setButtonDrawable(convertView.getResources().getDrawable(R.drawable.yuanquan));
        //----->主要是这里
        if (info.isSelected()) {
            holder.cb_join_group.setButtonDrawable(convertView.getResources().getDrawable(R.drawable.lianxiren_xuanzhong));
        } else {
            holder.cb_join_group.setButtonDrawable(convertView.getResources().getDrawable(R.drawable.yuanquan));
        }
    }
    return convertView;
}
     然后要获取选中的item的话:
if (lists.get(i).isSelected()) {
    //这里面都是选中了的
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值