转自:http://blog.sina.com.cn/s/blog_93bca7340102uzmq.html
在ListView和GridView中使用CheckBox,发现状态会自己变化,困扰了很久。
一番查证,要加上一句checkBox.setOnCheckedChangeListener(null);
然后再对CheckBox进行状态确定,当然同样要记得在处理状态时,使用变量对状态进行保存。
附上代码:
holder.checkBox.setOnCheckedChangeListener(null);
if(dataModel.flag.equals("0")) holder.checkBox.setChecked(false);
else holder.checkBox.setChecked(true);
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
arrayList.get(position).flag="1";
}
else{
arrayList.get(position).flag="0";
}
}
});
同时想问,有没有大神知道为什么要这样做?感谢感谢!
PS:最近可能有一个机会,要参加Android面试了,慌的要死都不知道要考什么,有没有大神来指导一下,跪谢!