可以把CheckBox单独保存起来,又或者
CheckBox cb = (CheckBox )adapter.getView(position,null,listview).findViewById(R.id.mswitch);

解决方案 »

  1.   

    亲 我设置了全局变量之类都保存不了,实验验证,geiView()中的checkbox对象总会被赋新值,那么原来存在全局中的对象就失效了
      

  2.   

    亲 我设置了全局变量之类都保存不了,实验验证,geiView()中的checkbox对象总会被赋新值,那么原来存在全局中的对象就失效了
    麻烦您详细一些
      

  3.   

    我想说我可以做,见下面地址中的checkbox
    http://bbs.csdn.net/topics/390798467
      

  4.   

    checkbox不用设置全局变量
    在adapter中这么设置.
    class ...... extends BaseAdapter
    ......
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
           ViewHolder holder = null;
          if (convertView == null) {
      holder = new ViewHolder();
     convertView = li.inflate(R.layout.布局, null);
    convertView.setTag(holder);
       } else {
    holder = (ViewHolder) convertView.getTag();
        }  holder.checkbox=(CheckBox) convertView.findViewById(R.id.mswitch);
      }
    }
    public final class ViewHolder {
        public CheckBox checkbox;
    }
    然后在事件中
    listview.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    CheckBox cb = (CheckBox) view.findViewById(R.id.mswitch);
    }
    我做的是可以获取的checkbox的。我做的是选择记录,选中则添加,取消则删除,没有问题。
      

  5.   

    在适配器里,不能单独的设置全局变量,这样你等到的是最后一个item的checkBox.
    你要设置局部变量,但是设置局部变量有有个问题了.
    就是局部变量会导致匿名内部类无法使用这个局部变量.这个时候就需要再定义一个final 变量
    这个很楼上说的效果是一样的.注意,楼上的ViewHolder是一个final类