【发布时间】:2016-10-01 16:51:47
【问题描述】:
这张图片显示了我的listview 的样子
当我们选中 All 时,所有的复选框都应该被选中,当我们取消选中时,所有的复选框都应该被取消选中,这里是 ListView All 也是列表视图的一部分,它在地图列表中的位置是 0...
public class MultiSelectBaseAdapter extends BaseAdapter{
Context context;
LayoutInflater inflater;
List<Boolean> selectedList;
Map<Integer, MultipleSelect> mapList;
public MultiSelectBaseAdapter(Context context, Map<Integer, MultipleSelect> mapList) {
this.context = context;
this.mapList = mapList;
selectedList = new ArrayList<>();
for(int i=0 ; i< mapList.size() ; i++){
selectedList.add(i, mapList.get(i).isSelected());
}
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public List<Boolean> getSelected(){
return selectedList;
}
public Map<Integer, MultipleSelect> getMapList(){
return mapList;
}
@Override
public int getCount() {
if(mapList != null){
return mapList.size();
}
return 0;
}
@Override
public Object getItem(int position) {
return mapList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.multiselect_item_layout, parent, false);
holder = new ViewHolder();
holder.textView = (TextView) convertView.findViewById(R.id.textview_multiselect);
holder.checkBox = (CheckBox) convertView.findViewById(R.id.checkbox_multiselect);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.checkBox.setTag(position);
holder.textView.setText(mapList.get(position).getKeyValueType().getName());
if(selectedList.get(position)){
holder.checkBox.setChecked(true);
} else{
holder.checkBox.setChecked(false);
}
holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int index = (Integer)buttonView.getTag();
if(isChecked){
selectedList.set(index, true);
}else{
selectedList.set(index, false);
}
notifyDataSetChanged();
}
});
return convertView;
}
public static class ViewHolder {
TextView textView;
CheckBox checkBox;
}
}
请帮助我,我是 android 新手,我没有使用 CheckBox
[在此处输入图片描述][2]
【问题讨论】: