当ListView滚动时,复选框自动调用onCheckedChange函数吗?
当ListView滚动时,复选框自动调用onCheckedChange函数吗?
我有一个关于ListView的问题,列表项中包含一个复选框。当我勾选一个复选框并滚动列表时,有时候复选框会自动触发onCheckedChange事件,导致复选框的值改变!或者,当我的列表有超过9或10个项时,当我勾选第一个项时,第八或第九个项会被勾选?有人可以告诉我如何修复这个bug吗?谢谢!
list_item.xml
这是适配器视图:
public View getView(int position, View convertView, ViewGroup parent) { Log.e(TAG, "getView"); ViewHolder mViewHolder; if (convertView == null) { Log.e(TAG, "Inflater is inflating..."); convertView = mInflater.inflate(R.layout.custom_list_app, null); mViewHolder = new ViewHolder(); mViewHolder.checkbox = (CheckBox) convertView.findViewById(R.id.checkbox); mViewHolder.remove = convertView.findViewById(R.id.music_info); convertView.setTag(mViewHolder); } else { mViewHolder = (ViewHolder) convertView.getTag(); Log.e(TAG, "Position: " + position + " CheckBox: " + mViewHolder.checkbox.isChecked()); } mViewHolder.checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton cb, boolean flag) { // TODO Auto-generated method stub if (flag) { Log.d(TAG, "Checkbox checked"); } else { Log.d(TAG, "Checkbox un-checked"); } } }); return convertView; }