今天只讲一种解决方式,首先问题是当我在ListView中子Item中有点击事件,当我选中之后会出现多个已经被选中的控件。出现这种问题的原因就是您的ListView 的 优化原因。
不过不用着急,下面来讲解一下如何解决这种问题。
首先在Bean对象中添加一个字段 private boolean isCheck ; 并且生成set/get方法
其次在Adapter中
@Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder vh ; final Bean bean = list.get(position) ; if(convertView == null){ convertView = inflater.inflate(R.layout.list_item,parent,false) ; vh = new ViewHolder() ; vh.tv = (TextView) convertView.findViewById(R.id.textView) ; vh.cb = (CheckBox) convertView.findViewById(R.id.checkBox); convertView.setTag(vh); }else{ vh = (ViewHolder) convertView.getTag() ; } vh.tv.setText(bean.getTitle()); vh.cb.setChecked(bean.isCheck()); vh.cb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bean.setIsCheck(vh.cb.isChecked()); } }); return convertView; }以上加粗的代码就是在adapter中getview中的点击方法的书写,进行完上面的代码之后就不会再出现错乱的问题了
谢谢访问