在使用listview的过程中,我们常常需要使用复选框,实现一些批处理功能。这时候我们需使用自定义的adapter,实现相关复选框的事件响应。
首先在adapter定义一个哈希表,用于存放复选框的选中情况:
如private static HashMap<String,Boolean> isSelected,private static HashMap<Interger,Boolean> isSelected等等
其次定义两个函数分别为存放哈希表以及取出哈希表的函数:
public static HashMap<String, Boolean> getIsSelected() {
return isSelected;
}
public static void setIsSelected(HashMap<String, Boolean> isSelected) {
DeleteFriendAdapter.isSelected = isSelected;
}
接着我们复写getView方法,来实现选中复选框后的响应事件:
viewHolder.deleteCheckBox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(getIsSelected().get(name)!=null)
{
if(getIsSelected().get(name))
{
isSelected.put(name, false);
setIsSelected(isSelected);
}
else {
isSelected.put(name, true);
setIsSelected(isSelected);
}
}
else {
isSelected.put(name, true);
setIsSelected(isSelected);
}
}
});
然后activity中的listview设置刚刚自定的adapter
lv_delete.setAdapter(deleteFriendAdapter);
如果需要在activity中查询复选框选中情况的哈希表,则调用 public static HashMap<String, Boolean> getIsSelected() 这个函数就可以啦。