CheckBox选中状态改变
这里写自定义目录标题
- CheckBox选中状态改变
- 一、背景
- 二、源码分析
- 三、总结:
CheckBox选中状态改变
一、背景
分配了一个编写checkbox通用控件的任务,有一个要求是希望可以在状态发生改变的时候去拦截
在网上没有找到比较有价值的参考,导师给了些思路,现在来分析一下checkbox点击之后的整个流程
二、源码分析
继承关系
CheckBox -> CompoundButton -> Button -> TextView -> View
其中,CompoundButton
实现了Checkable
接口,推测选中事件是在CompoundButton
中具体实现的
CompoundButton
重要属性和方法:
private boolean mChecked;private OnCheckedChangeListener mOnCheckedChangeListener;private OnCheckedChangeListener mOnCheckedChangeWidgetListener;@Overridepublic void setChecked(boolean checked) {if (mChecked != checked) {......mChecked = checked; //控件状态真实改变refreshDrawableState(); //状态改变了要更新显示的资源......mBroadcasting = true; //不是很明白这里为什么要先true 后 falseif (mOnCheckedChangeListener != null) {mOnCheckedChangeListener.onCheckedChanged(this, mChecked);}if (mOnCheckedChangeWidgetListener != null) {mOnCheckedChangeWidgetListener.onCheckedChanged(this, mChecked);}......mBroadcasting = false;}}@Overridepublic void toggle() { //控件状态改变setChecked(!mChecked);}@Overridepublic boolean performClick() { //执行点击事件的常规操作,问题是 它是从何处调用的toggle();......}@Overridepublic boolean isChecked() {return mChecked;}
三、总结:
控件的选中状态改变是在setChecked()
方法中,有三种方法调用setChecked()
- 直接调用
toggle()
调用peformClick()
调用toggle()
间接调用
CheckBox选中状态改变相关推荐
- 使用jquery判断及改变checkbox选中状态
使用jquery判断及改变checkbox选中状态 https://jingyan.baidu.com/article/fea4511a00f66af7ba912560.html
- html中radio、checkbox选中状态研究(静下心来看,静下心来总结)
html中radio.checkbox选中状态研究(静下心来看,静下心来总结) 一.总结 1.单选框的如果有多个checked 会以最后一个为准 2.js动态添加checked属性:不行:通过 $(& ...
- 获取与设置checkbox选中状态
获取checkbox被选中状态值:$("#id").prop('checked'); 设置checkbox选中状态:$("#id").attr('check', ...
- 获取checkbox选中状态的两种方式_张童瑶的博客
获取checkbox选中状态的两种方式 获取checkbox选中状态的两种方式 第一种方式 第二种方式 我的其他文章 我的其他网站 获取checkbox选中状态的两种方式 我在开发项目的时候遇到这个问 ...
- jQuery取消checkbox选中状态
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>jQu ...
- Android ListView中CheckBox选中状态失效的最佳解决方案
Android ListView中CheckBox选中状态失效: 在ListView中某一项滑到显示区外部的时候,重新划回来时其中的CheckBox的选中状态会重置,本文提出了一种解决方案,操作起来快 ...
- checkbox jq 监听_「checkbox 选中事件」jquery checkbox 选中、改变状态、change 和 click 事件 - seo实验室...
checkbox 选中事件 jquery判断checked的三种方法: .attr('checked); //看版本1.6+返回:"checked"或"u ...
- Android实例-手机安全卫士(三十六)-根据Service是否开启确定CheckBox选中状态
一.目标 1.根据service是否在后台运行情况来确定CheckBox的选中状态: 2.解决"设置中心"的"开启来电号码显示归属地"功能在退出程序再进入时选中 ...
- jQuery控制checkbox选中状态但是不显示选中
问题描述:使用jQuery来控制checkbox的选中状态,但是第一次点击出现选中样式,之后点击可以看到checked的属性增加成功但是并没有选 中状态. 问题代码: function chooseA ...
最新文章
- 开源 免费 java CMS - FreeCMS1.9 全文检索
- 前端一HTML:十二:元素查找过程的详解
- Go: 字符串比较的三种方法
- 苹果错误分析报告preferreuserinterface_数据分析的六个步骤,你做到了吗?
- 二进制_简学:二进制数制的应用
- 当深度学习遇上图: 图神经网络的兴起!
- apache2.2:使一个目录允许执行cgi程序
- CANN AICPU算子耗时分析及优化探索
- echarts 大屏模板_年会策划万能模板 ,玩转年会看这篇!
- Eclipse代码自动补全设置
- 关于苹果Mac上设置固件密码的方法?
- 下载anaconda后配置环境变量
- 使用Apache Tika实现内容分析
- python角谷猜想递归实现_第三周函数的递归---编程作业: 递归编程练习
- c语言产生式系统动物识别系统,简单动物识别系统的知识表示实验报告
- Python Web前端实战案例——电商网站商品菜单导航栏
- 达梦7数据库数据守护集群 技术方案
- 指纹及设备检索:zoomeye(入门)
- Python启动器(py.exe)主版本次版本相同补丁版本不同解释器选择的异常问题
- 第一章 复数 1-3-复平面上的点集
热门文章
- chrome插件draw.io代替visio成为流程图架构图制作新的利器
- 上海计算机学院网上报名,上海市学历积分报名网,成年人考试网上报名
- OPenCV4-颜色识别(一)调色板和简单的颜色识别
- Python代码解析数据
- 服装行业如何利用长尾关键词挖掘推广?
- 考验逻辑思维能力的软件_23个经过时间考验的应用程序,可以管理您的远程软件开发团队...
- Halcon消除畸变
- 责任链模式实践之Zuul责任链模式
- python3.6和3.8_选择 Python3.6 还是 Python 3.7
- 极线几何关系、极点、极线,三维重构,k-d树的特征匹配方法