一、当ListView的item中有chexbox、button时会抢占焦点,解决方法如下
(1)设置其为android:focusable="false"
(2)在最外层布局中设置 android:descendantFocusability = "blocksDescendants"
二、ListView复用导致内容错乱
(1)在bean中设置一个属性 private boolean isChecked用来记录是否被选中; 并为其设置get、set方法,在Activity中设置botton.setChecked(bean.isChecked());使得控件复用但是bean不复用。
(2)在Adapter中设置以下代码
private List<Integer> mPos = new ArrayList<Interger>();//用来保存选中的状态
botton.setChecked(false);
if(mPos.contains(holder.getPosition())){
botton.setChecked(true);
}
public void onClick(View v){
if(botton.isChecked()){
mPos.add(holder.getPosition();
}else{
mPost.remove((Integer)holder.getPosition());
}
}