由于是用的GRIDVIEW,所以手写的adapter然后手写的单选checkbox,正常运行是没问题的,但是在滑动时可能会出现一个checkbox的checked是false但是他显示出来的选中状态是true,如果选中一个,然后点出输入法,那必定会出现这种情况
代码
- Java code
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; } });
------解决方案--------------------
在adapter的getView中要保证每个checkbox的差异性,就是说保证每个checkbox都要设置选中还是未选中