使用customAdapter从Listview获取所有选中项目的列表

时间:2016-03-08 13:15:22

标签: android listview

我有自定义适配器的列表视图。我的行中有带textview的复选框。

以下是我的getView方法

public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder viewHolder = null;
        if (convertView == null) {
            LayoutInflater inflator = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflator.inflate(R.layout.filters, null);
            viewHolder = new ViewHolder();
            viewHolder.text = (TextView) convertView.findViewById(R.id.label);
            viewHolder.checkbox = (CheckBox) convertView.findViewById(R.id.check);
            final ViewHolder finalViewHolder = viewHolder;
            viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    int getPosition = (Integer) buttonView.getTag();
                    list.get(getPosition).setSelected(buttonView.isChecked());

                }
            });
            convertView.setTag(viewHolder);
            convertView.setTag(R.id.label, viewHolder.text);
            convertView.setTag(R.id.check, viewHolder.checkbox);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        viewHolder.checkbox.setTag(position);

        viewHolder.text.setText(list.get(position).getName());
        viewHolder.checkbox.setChecked(list.get(position).isSelected());
        return convertView;
    }

如何在Checkbox中获取所有选中项目的列表?我尝试使用SparseBooleanArray,但我仍然无法这样做。

1 个答案:

答案 0 :(得分:1)

如果我是你,我会尽力做到:
1.创建StateList
3.将ChangeCheckListener设置为null
2.从列表中加载项目状态
3.创建ChangeCheckListener -listen to onChange操作并将其保存到列表中