zoukankan      html  css  js  c++  java
  • 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.         }); 
  • 相关阅读:
    JS LeetCode 1423. 可获得的最大点数简单题解
    SpringBoot 学集 (第六章) Docker
    Linux 学记 (第三章)
    Linux 学记 (第二章)
    Linux 学记 (第一章)
    SpringBoot 学集 (第五章) Web开发续
    SpringBoot 学集 (第四章)Web开发
    SpringBoot 学集 (第三章) 日志框架
    SpringBoot 学集 (第二章) 配置文件
    SpringBoot 学集 (第一章)
  • 原文地址:https://www.cnblogs.com/awkflf11/p/4613930.html
Copyright © 2011-2022 走看看