【发布时间】:2015-11-29 11:43:09
【问题描述】:
我正在创建一个应用程序来发送联系人。我在使用带有名称编号和复选框的自定义适配器填充的列表视图中显示了联系人详细信息。问题是当我选中一个复选框时,随机复选框也会在列表中被选中。我在这里参考了很多问题,但仍然无法正常工作
适配器类中填充列表的方法是
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ContactsBean contact = contacts.get(position);
ViewHolder holder = null;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mainActivity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_layout, null);
holder = new ViewHolder();
holder.number = (TextView) convertView.findViewById(R.id.numberTextView);
holder.name = (TextView) convertView.findViewById(R.id.nameTextView);
holder.box = (CheckBox) convertView.findViewById(R.id.checkBox);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.name.setText(contact.getName());
holder.number.setText(contact.getNumber().get(0));
holder.name.setTag(contact);
holder.box.setTag(contact);
holder.box.setOnClickListener(this);
holder.box.setSelected(contact.isSelect());
return convertView;
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.checkBox) {
ContactsBean bean = (ContactsBean) v.getTag();
bean.setSelect(!bean.isSelect());
notifyDataSetChanged();
}
}
private static class ViewHolder {
public TextView number;
public TextView name;
public CheckBox box;
}
【问题讨论】:
标签: android checkbox android-listview