Listview中Checkbox点击错位
public class MyAdapter extends CommonAdapter{
private HashMap<Integer,Boolean> hashMap = new HashMap<>();
private HashMap<Integer,Boolean> hashMap2 = new HashMap<>();
public MyAdapter(Context context, List mDatas) {
super(context, mDatas);
for (int i = 0; i < mDatas.size(); i++) {
hashMap.put(i,false);
hashMap2.put(i,false);
}
}
private int mCurentPosition=1000;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
BaseViewHolder viewHolder = BaseViewHolder.get(mContext, convertView, parent,
R.layout.item_view2, position);
final TextView mTitle = viewHolder.getView(R.id.id_tv_title);
CheckBox checkbox = viewHolder.getView(R.id.check_view);
LinearLayout ll = viewHolder.getView(R.id.ll);
if(mCurentPosition==position){
ll.setBackgroundColor(Color.RED);
}else{
ll.setBackgroundColor(Color.WHITE);
}
checkbox.setText(mDatas.get(position).toString());
mTitle.setText((String) mDatas.get(position));
if(hashMap.get(position)){
mTitle.setText("变了");
}
mTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTitle.setText("变了");
hashMap.put(position, true);
}
});
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked==true){
hashMap2.put(position,true);
}else{
hashMap2.put(position, false);
}
}
});
//要这么设置
checkbox.setChecked(hashMap2.get(position));
return viewHolder.getConvertView();
}
public void setmCurentPosition(int pos){
if(mCurentPosition==pos)
}else{
mCurentPosition=pos;
}
notifyDataSetChanged();
}
}