首页 > 学院 > 开发设计 > 正文

解决listview中checkbox复用的问题

2019-11-09 15:12:15
字体:
来源:转载
供稿:网友
PRivate Context context;      private String[] beans;        // 用来控制CheckBox的选中状况      private static HashMap<Integer, Boolean> isSelected;        class ViewHolder {            TextView tvName;          CheckBox cb;      }        public ListViewAdapter(Context context, String[] beans) {          // TODO Auto-generated constructor stub          this.beans = beans;          this.context = context;          isSelected = new HashMap<Integer, Boolean>();          // 初始化数据          initDate();      }        // 初始化isSelected的数据      private void initDate() {          for (int i = 0; i < beans.length; i++) {              getIsSelected().put(i, false);          }      }         @Override      public View getView(final int position, View convertView, ViewGroup parent) {                  // 监听checkBox并根据原来的状态来设置新的状态          holder.cb.setOnClickListener(new View.OnClickListener() {                public void onClick(View v) {                    if (isSelected.get(position)) {                      isSelected.put(position, false);                      setIsSelected(isSelected);                  } else {                      isSelected.put(position, true);                      setIsSelected(isSelected);                  }                }          });            // 根据isSelected来设置checkbox的选中状况          holder.cb.setChecked(getIsSelected().get(position));          return convertView;      }        public static HashMap<Integer, Boolean> getIsSelected() {          return isSelected;      }        public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {          ListViewAdapter.isSelected = isSelected;      }  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表