频道栏目
首页 > 资讯 > 其他 > 正文

解决ListViewItemCheckBox重复选择

18-05-31        来源:[db:作者]  
收藏   我要投稿

1.直接上代码

private Map map=new HashMap<>();// 存放已被选中的CheckBox
 @Override
 public View getView(final int position, View convertView, ViewGroup parent) {
  final ViewHolder viewHolder;
  getItem(position);
  if (convertView==null){
viewHolder=new ViewHolder();
convertView= LinearLayout.inflate(context, R.layout.list_item, null);
viewHolder.text=convertView.findViewById(R.id.tv);
viewHolder.checkbox=convertView.findViewById(R.id.checkbox);
convertView.setTag(viewHolder);

  }else {
viewHolder = (ViewHolder) convertView.getTag();
  }
  //最主要的就是这个存储和下面的那个判断
  viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
 if(isChecked==true){
  map.put(position,true);
 }else {
  map.remove(position);
 }
}
  });
  //没错你看到了  就是这个
  if(map!=null&&map.containsKey(position)){
viewHolder.checkbox.setChecked(true);
  }else {
viewHolder.checkbox.setChecked(false);
  }
  viewHolder.text.setText(str.get(position));
  return convertView;
 }
 static class ViewHolder {
  TextView text;
  CheckBox checkbox;
 }
相关TAG标签
上一篇:jquery的加载运行环境代码分析
下一篇:Jquery中的工具方法$.isFunction,$.isArray(),$.isWindow()实例讲解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站