CheckBox抢占Item焦点,导致Item点击无效!

方法一:CheckBox设置android:clickable="false"

方法二:在Item根布局或ListView布局设置android:descendantFocusability="blocksDescendants"

在ListView的Item中的Button,CheckBox等子控件会抢占焦点,使得点击item本身没有响应!

常用android:descendantFocusability=”blocksDescendants”覆盖子类控件焦点

descendantFocusability属性定义viewGroup和其子控件之间关系:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

android:descendantFocusability="blocksDescendants">

android:clickable="false"/>

android:descendantFocusability="blocksDescendants"/>

适配器在getview()中重复使用[被移除屏幕的item,即不可见的项]

会造成被选中的checkbox重新出现,显示异常,故需要记录checkbox的状态!

public class MyAdapter extends BaseAdapter implements OnItemClickListener {

private HashMap isSelected; // 记录checkbox状态

public MyAdapter() {

// 初始化所有checkbox为未选择

isSelected = new HashMap();

for (int i = 0; i < list.size(); i++)

isSelected.put(i, false);

}

@Override

public View getView(int position, View convertView, ViewGroup arg2) {

ViewHolder holder;

...

holder.cb.setChecked(isSelected.get(position)); // 更新checkbox状态

return view;

}

@Override

public void onItemClick(AdapterView> arg0, View view,

int position, long arg3) {

// 切换checkbox状态

isSelected.put(position, !isSelected.get(position));

notifyDataSetChanged();

}

}

public class MainActivity extends Activity {

...

MyAdapter adp = new MyAdapter();

listview.setAdapter(adp);

listview.setOnItemClickListener(adp);

...

}

android复选框不选中无法点击按钮,Android-Listveiw的checkbox,Button焦点问题相关推荐

  1. jquery复选框组清空选中的值_jQuery获取复选框被选中数量及判断选择值的方法详解...

    这篇文章主要介绍了jQuery获取复选框被选中数量及判断选择值的方法,结合实例形式分析了jQuery操作复选框进行判定与统计的相关技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了jQuer ...

  2. 【jQuery】复选框的全选、反选,推断哪些复选框被选中

    本文与<[JavaScript]复选框的全选.反选.推断哪些复选框被选中>(点击打开链接)为姊妹篇,把里面内容再与jQuery框架中实现一次,相同做到例如以下的效果: 布局还是相同的布局, ...

  3. JAVA之获取JavaSwing复选框JCheckBox选中的值(内容)

    JAVA之获取JavaSwing复选框JCheckBox选中的值(内容) package shishi;import java.awt.BorderLayout; import java.awt.Co ...

  4. js获取checkbox复选框获取选中的选项

    分享下javascript获取checkbox 复选框获取选中的选项的方法. 有关javascript 获取checkbox复选框的实例数不胜数. js实现: var form = document. ...

  5. jquery特效(6)—判断复选框是否选中进行答题提示

    前面有一段时间思想开了小差,跟着师父学习了一段时间才发现差距很大,看来我要奋起直追~\(≧▽≦)/~啦啦啦. 最近公司在做一个项目,需要根据用户选择的选项给出相应的提示,下面来看我写的测试程序的效果: ...

  6. php ajax勾选框提交,jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例...

    昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...

  7. 获取复选框的状态判断复选框是否选中状态

    判断复选框是否选中状态 推荐两种方法的使用 第一种是prop('checked'); 示例代码 <input type="checkbox" id="checks& ...

  8. Yii2 中 checkboxlist 复选框 默认选中

    Yii2 checkboxlist 选中问题 方法1:  在 controller 中 model->字段 = 值; 比如: $model->type= 1; 方法2: <?= $f ...

  9. layui复选框默认选中

    layui复选框默认选中 table.render({elem: '#projectMaterialList', cols: [[ //标题栏{checkbox: true}, {type: 'num ...

最新文章

  1. SecureCRT如何与Linux虚拟机进行关联
  2. JS作用域理解(声明提升)
  3. SAP UI5 应用开发教程之二十四 - 如何使用 OData 数据模型
  4. linux下载gcc yarm,修改Yarn的全局安装和缓存位置
  5. diy 单片机 自动浇花_造个自动浇花装置(完)
  6. VirtualBox - 虚拟机下主机与虚拟机、虚拟机与虚拟机之间通信配置
  7. Linux 串口驱动实例简单分析(x86 8250驱动(16550A),TIOCMGET, TIOCMSET, RTS)
  8. 浅层砂过滤器 全自动浅层介质过滤系统
  9. 百度地图设置卫星地图显示图文教程
  10. kubernetes-kube-scheduler进程源码分析
  11. 签证者的武林秘笈(一)—-来自太傻的签证哲学
  12. POJ 1625 Censored! (AC自动机 + 高精度 + DP)
  13. 苹果手机个性定制,IPHONE4S手机外壳DIY专属定制,创意设计外壳
  14. Borderlands 3 for Mac 无主之地3
  15. mkv文件怎么无损转成mp4?
  16. 【Web技术】1348- 聊聊水印实现的几种方式
  17. How to play PRA CandyBox game——GoDapp
  18. CAD如何快速标注尺寸?CAD标注尺寸教程
  19. sqlmap 使用方法
  20. windows计算机图标历史,从1993年至今,Windows开始菜单的传奇发展史

热门文章

  1. where is field waerk in pricing structure filled
  2. Message popover
  3. 部署在Netweaver上的Fiori应用的WebContent文件夹
  4. 在BAdI definition PRODUCT_R3_ADAPTER的implementation里获得download type
  5. IBASE read buffer
  6. 如何使用SAP CRM增强工具AET创建Table表格类型的增强
  7. linux删除modules文件夹,linux – 为什么我不能删除这个dkms模块?
  8. fiddler抓包工具简介
  9. 极速写作2017彻底卸载_如何将 Flash 从 Mac 和 Windows 系统中彻底卸载?
  10. 我国在量子计算机领域的发展情况的感受,量子计算机的现状及发展趋势.doc