国庆之后,很久没写博客了,今天开始更新,记录一些小知识
1.ListView的CheckBox的单选:
其实很简单,我们先写好适配器,然后在getView()方法中:
private int selectPosition = -1; //记录已经点击的CheckBox的位置
@Override
public void getItemView(MOrganizationInfo mOrganizationInfo, ViewHolder holder, final int position, View convertView) {
CheckBox ckb = holder.getView(R.id.ckb);
//checkBox实现单选
ckb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ckb.isChecked()) {
selectPosition = position;
notifyDataSetChanged();//刷新后checkBox为选中当前点击的那个checkBox
} else {
selectPosition = -1;
notifyDataSetChanged();//刷新后取消原选中的
}
}
});
if (selectPosition == position) {
ckb.setChecked(true);
} else {
ckb.setChecked(false);
}
}
2.ListView的多选
final Set<Integer> isSelected = new HashSet<>();
@Override
public void getItemView(MOrganizationInfo mOrganizationInfo, ViewHolder holder, final int position, View convertView) {
final CheckBox ckb=new CheckBox(this);
ckb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (ckb.isChecked()) {
isSelected.add(position);
notifyDataSetChanged();
}else{
isSelected.remove(position);
notifyDataSetChanged();
}
ckb.setChecked(isSelected.contains(position));
}
这里只是作为一个小小的记录