listview与复选框的合并使用

来源:互联网 发布:js获取map的value 编辑:程序博客网 时间:2024/06/05 13:25

     在使用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() 这个函数就可以啦。

 

   

 

   

 

 

0 0