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()) {//这里面都是选中了的}