• Android listview中使用checkbox


    最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.
    下面开始正题,在listview的item中使用checkbox,当你按照普通的listview的用法使用时,你会遇到下面这样的问题:
    1.checkbox可以点击,但是listview的item无法点击
    2.无法获得checkbox被点击的是哪一行
    第一个问题涉及到事件分发,下一篇再扯(我会按照我的理解,通俗易懂的来描述),第二个问题我的理解就是getview无法重绘的原因,这里拿不到 position的值,为了能解决我的问题,我需要换一种思路,也就是我今天介绍的方法:屏蔽checkbox的选择事件,也就是说checkbox不能 响应选中事件,当用户点击listview的item时,制造假象,用代码控制选中checkbox

    恩,差不多就这些了,由于代码直接写到项目中了,就不写demo了,直接贴一下主要代码,仅供参考,如果您有更好的方法可以相互交流

    1,设置 checkbox无法响应点击事件

    1. android:clickable="false"  
    2.         android:focusable="false"  
    3.         android:focusableInTouchMode="false"   


    2.适配器中声明一个值用来控制checkbox的选中情况

    1.     private static HashMap<Integer,Boolean> isSelected; 
    1.     public static HashMap<Integer,Boolean> getIsSelected() {    
    2.             return isSelected;    
    3.         }    
    4.         
    5.         public static void setIsSelected(HashMap<Integer,Boolean> isSelected) {    
    6.             MyDocShowAdapter.isSelected = isSelected;    
    7.         }    
    1.     isSelected = new HashMap<Integer, Boolean>();   
    2.             for(int i=0; i<list.size();i++) {    
    3.                 getIsSelected().put(i,false);    
    4.             } 

    3.根据item的点击情况,给checkbox赋值

      1. mListView.setOnItemClickListener(new OnItemClickListener() {  
      2.   
      3.             @Override  
      4.             public void onItemClick(AdapterView<?> parent, View view,  
      5.                     int position, long id) {  
      6.                 ViewHolder holder = (ViewHolder) view.getTag();   
      7.                 holder.mCheckBox.toggle();  
      8.                 MyDocShowAdapter.getIsSelected().put(position, holder.mCheckBox.isChecked());  
      9.             }  
      10.         }); 
  • 相关阅读:
    使用命令xrandr设置当前系统的显示分辨率及显示的旋转脚本
    CODEFORCE 246 Div.2 B题
    Android数据的四种存储方式之SQLite数据库
    C语言默认參数值的实现
    Android开发环境搭建
    也谈OpenFlow, SDN, NFV
    解决设置redmineblacklog的按钮无效问题
    长方体的研究
    表面张力与浮力
    表面张力与浮力
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4613930.html
Copyright © 2020-2023  润新知