最近比较忙碌,我也不知道忙的什么东西,打算写的博客写了一半,还没写完,今天先扯一扯项目中遇到的一个问题,一方面防止以后遇到这个问题忘记如何解决,另一方面希望可以提供给遇到同样问题的朋友一个思路.
下面开始正题,在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. public static void setIsSelected(HashMap<Integer,Boolean> isSelected) {
  5. MyDocShowAdapter.isSelected = isSelected;
  6. }
  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. @Override
    3. public void onItemClick(AdapterView<?> parent, View view,
    4. int position, long id) {
    5. ViewHolder holder = (ViewHolder) view.getTag();
    6. holder.mCheckBox.toggle();
    7. MyDocShowAdapter.getIsSelected().put(position, holder.mCheckBox.isChecked());
    8. }
    9. });

Android listview中使用checkbox的更多相关文章

  1. Android ListView 中的checkbox

    Q:ListView + CheckBox 当上下滚动的时候有事会自动选中或取消 A:这个与ListView的缓存机制有关.当你屏幕滚动后,ListView中的item选项视图先检查缓存中是否有视图, ...

  2. Android ListView 中加入CheckBox/RadioButton 选择状态保持、全选、反选实现

    最近在一个项目中,需要在ListView的item中加入CheckBox,但是遇到的一个问题是上下滑动的时候如果有选择了的CheckBox,就会出现选择项错误的问题,下面将个人的解决方法总结如下;先说 ...

  3. android listview中item通过viewpager实现《IT蓝豹》

    android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...

  4. 如何在Android的ListView中构建CheckBox和RadioButton列表(支持单选和多选的投票项目示例)

    引言 我们在android的APP开发中有时候会碰到提供一个选项列表供用户选择的需求,如在投票类型的项目中,我们提供一些主题给用户选择,每个主题有若干选项,用户对这些主题的选项进行选择,然后提交. 本 ...

  5. android ListView中CheckBox错位的解决

    貌似已经非常晚了,可是还是想记下笔记,想让今天完满. 在ListView中加了checkBox,但是发现点击改变其选中状态的时候,发现其位置错乱.状态改变的并非你选中的,百思不得其解.后面通过上网查资 ...

  6. Android ListView中Item点击事件失效解决方案

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...

  7. Android,LIstView中的OnItemClick点击无效的解决办法

    在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...

  8. [Android] ListView中如何让onClick和onItemClick事件共存

    ListView中如何使用Button,让onClick和onItemClick事件共存 假如ListView的一条记录包含一个TextView文本框,一个Button按钮,怎样能让点击按钮有事件响应 ...

  9. android ListView中button点击事件盖掉onItemClick解决办法

    ListView 1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的 public void onItemClick ...

随机推荐

  1. 附录二 C语言标准库

    上章回顾 数组和指针相同与不同 通过指针访问数组和通过数组访问指针 指针在什么时候可以加减运算 函数指针的申明和调用 函数数组和数组函数 git@github.com:Kevin-Dfg/Data-S ...

  2. MySql的FIND_IN_SET()查询函数的使用

    表 table的结构如下: id title 1 12,21 2 21,32 3 45,21,78 4 221,45,74 5 34,421,121 6 52,21,321 现在用sql语句查出来字段 ...

  3. kuangbin_ShortPath I (POJ 2240)

    本身很简单的spfa判环 TLE了一把是因为没写map(不会) 看着别人的答案临时学了一发发现只是用的话还是挺简单的 (但是绝对别学别人直接命名为m) 800多MS水过 噢对了这题Pending到超时 ...

  4. ExtJS 的一些技巧与问题

    1.修改列表(grid)里store的加载url grid.getStore().proxy.conn.url = "xxx.jsp"; grid.getStore().reloa ...

  5. 《Linux与Qt程序设计》知识框架

    本文主要是通过一本书来大致了解Qt开发的框架,不对具体内容做详细分析. 1.首先弄清楚概念:定义->以自己的话理解是什么-> 实现的是什么功能->用在哪些地方 2.前面认识到的知识点 ...

  6. 如何在python3.3用 map filter reduce

    在3.3里,如果直接使用map(), filter(), reduce(), 会出现 >>> def f(x): return x % 2 != 0 and x % 3 != 0  ...

  7. ps白平衡

    ps白平衡:在正常光线下看起来是白颜色的东西在有色光或者较暗的光线下看起来可能就不是白色,还有荧光灯下的"白"也是"非白".对于这一切如果能调整白平衡,则在所得 ...

  8. CentOS提示::unknown filesystem type 'ntfs'.解决

    在将硬盘插到Linux系统上,打开硬盘时一直提示:unknown filesystem type 'ntfs'.在尝试网上的方法也遇到了一些问题. 下面按照遇到的问题,按照正确的方式注意操作从而避免问 ...

  9. jQuery选择器大全(48个代码片段+21幅图演示)

    选择器是jQuery最基础的东西,本文中列举的选择器基本上囊括了所有的jQuery选择器,也许各位通过这篇文章能够加深对jQuery选择器 的理解,它们本身用法就非常简单,我更希望的是它能够提升个人编 ...

  10. windows下android开发环境搭建

    JDK的安装和Java环境变量的设置 1 JDK下载地址 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.h ...