listView中的checkbox的错位问题
小小亠星辰 2016-09-02 05:34:32 找了很多网上的解释,照着敲都感觉不对 代码如下,求指教:
class myAdapter extends BaseAdapter{
private int index;
private viewHolder viewholder;
private Map<Integer,Boolean> map;
public myAdapter(Map<Integer, Boolean> map) {
this.map = map;
}
@Override
public int getCount() {
return 10000;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
index = i;
if(view == null){
view =View.inflate(MainActivity.this, R.layout.items, null);;
viewholder = new viewHolder();
viewholder.checkBox = (CheckBox) view.findViewById(R.id.cb);
view.setTag(viewholder);
}else{
viewholder = (viewHolder)view.getTag();
}
viewholder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
map.put(index,viewholder.checkBox.isChecked());
}
});
if(map.get(index)){
viewholder.checkBox.setChecked(true);
}else
viewholder.checkBox.setChecked(false);
return view;
}
}
class viewHolder{
TextView textView;
CheckBox checkBox;
}
}