public class VerifySelProjectFundsAdapter extends BaseAdapter { Context cxt; private List<ViewPayHandleData> mList; private LayoutInflater mInflater; // 用来控制CheckBox的选中状况 private HashMap<Integer, Boolean> isSelected; public VerifySelProjectFundsAdapter(Context context, List<ViewPayHandleData> list) { cxt = context; mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); mList = list; if (list == null) { mList = new ArrayList<ViewPayHandleData>(); } isSelected = new HashMap<Integer, Boolean>(); initIsSelected(); } // 初始化isSelected的数据 private void initIsSelected() { for (int i = 0; i < mList.size(); i++) { getIsSelected().put(i, false); } } public HashMap<Integer, Boolean> getIsSelected() { return isSelected; } public void setIsSelected(HashMap<Integer, Boolean> isSelected) { this.isSelected = isSelected; } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int arg0) { return mList.get(arg0); } public void clear() { mList.clear(); } public void setList(List<ViewPayHandleData> list) { this.mList = list; } public void addAll(List<ViewPayHandleData> list) { mList.addAll(list); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.view_sel_card, null); holder = new ViewHolder(); holder.che_type = (CheckBox) convertView .findViewById(R.id.che_type); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); holder.tv_part = (TextView) convertView .findViewById(R.id.tv_part); convertView.setTag(holder); holder.che_type.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final ViewPayHandleData arr = (ViewPayHandleData) getItem(position); holder.arr = arr; holder.tv_name.setText(arr.getRemit_time()); holder.tv_part.setText(arr.getRemit_amount()); // 监听checkBox并根据原来的状态来设置新的状态 holder.che_type.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (isSelected.get(position)) { isSelected.put(position, false); setIsSelected(isSelected); } else { tempIds += arr.getId() + ","; LogUtil.i("======id==" + tempIds); isSelected.put(position, true); setIsSelected(isSelected); } } }); // 根据isSelected来设置checkbox的选中状况 holder.che_type.setChecked(getIsSelected().get(position)); return convertView; } } class ViewHolder { CheckBox che_type; TextView tv_name; TextView tv_part; ViewPayHandleData arr; }
listview+checkbox实现多选
最新推荐文章于 2021-01-20 17:26:03 发布