listview是自己创建的adapter来控制显示内容的,参考apidemos中的list14,在adapter中的getview里面将viewholder添加一个id来控制,然后onitemclick里面通过position的参数来确认你点击的对应到哪个holder中,然后再去获取那个holder里的checkbox状态

解决方案 »

  1.   

    状态的话用boolean数组来保存吧,设置CheckBox状态的话是setChecked(true)这个函数;public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
    convertView = inflater.inflate(R.layout.del_list_items, null);
    holder = new ViewHolder();
    holder.tv_delListItem_city = (TextView) convertView.findViewById(R.id.tv_delListItem_city);
    holder.cb_delListItem = (CheckBox) convertView.findViewById(R.id.b_delListItem);
    convertView.setTag(holder);
    } else {
    holder = (ViewHolder) convertView.getTag();
    }
    holder.tv_delListItem_city.setText((String) listItem.get(position).get("del_city"));
    holder.cb_delListItem.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    del_array[position] = isChecked;
    }
    });
    holder.cb_delListItem.setChecked(del_array[position]);//设置是否选中状态
    return convertView;
    } class ViewHolder {
    private TextView tv_delListItem_city;
    private CheckBox cb_delListItem;
    }
      

  2.   

    哦 对了,对ListView setAdpter的时候 最好是自己继承实现一个BaseAdapter,并重写上面那个getView()这个关键方法