由于是用的GRIDVIEW,所以手写的adapter然后手写的单选checkbox,正常运行是没问题的,但是在滑动时可能会出现一个checkbox的checked是false但是他显示出来的选中状态是true,如果选中一个,然后点出输入法,那必定会出现这种情况
代码public void onClick(View v) {
// TODO Auto-generated method stub
listIndex = position;
if (lastChecked != null) {
Message msg = new Message();
msg.obj = lastChecked;
changeChecked.sendMessage(msg);
}
if (lastChecked == v) {
edtMan.setText("");
lastChecked = null;
listIndex = -1;
} else {
((CheckBox) v).setChecked(true);
edtMan.setText(chkboxText);
lastChecked = v;
}
}Handler changeChecked = new Handler(new Handler.Callback() { @Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
((CheckBox) msg.obj).setChecked(false);
return true;
}
});

解决方案 »

  1.   

    在adapter的getView中要保证每个checkbox的差异性,就是说保证每个checkbox都要设置选中还是未选中
      

  2.   


    现在每个checkbox都设置了选中状态,但是我通过debug发现的是他的check状态已经是false了,但是他的页面显示效果还是绿色对钩~~同样的还有一个LIST选中后变色然后再进照相,回来以后颜色也会消失,数据还在,背景色也不是白色