Android-->如何让普通View具有checked属性(背景xml支持checked状态)
来源:互联网 发布:南京教育网络平台登录 编辑:程序博客网 时间:2024/06/06 03:55
当需要实现选择状态的时候,CompoundButton是系统提供的选择.
我们可以很简单的通过isChecked(), 返回是否选中.
也可以通过xml设置background的方法, 实现选中后的样式.
但是, 有些时候, 系统提供的控件不足以满足我们的需求,,,这个时候就是头脑风暴的时候了.
首先, 如果需要实现isChecked()返回是否选中, 那么自定义View的时候, 就需要自己通过一个变量
保存这个互斥状态值.
boolean mChecked = false;
这个通常是比较简单的.
难点:那么如何实现xml中的checked状态呢?
其实方法也很简单, 系统都处理好了, 只要我们调用就行.
//选中状态对应的系统资源private static final int[] CHECKED_STATE_SET = { android.R.attr.state_checked};//重写View的onCreateDrawableState方法, 这个方法就是告诉xml当前的状态//然后,系统会通过此状态,设置对应的drawable@Overridepublic int[] onCreateDrawableState(int extraSpace) { //固定写法 final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); //判断是否选择 if (isChecked()) { //如果选择, 把选择的状态, 合并到现有的状态中. mergeDrawableStates(drawableState, CHECKED_STATE_SET); } return drawableState;}
public boolean isChecked() { return mChecked;}//那么, 当设置选中状态的时候public void setChecked(boolean checked) { if (mChecked == checked) { return; } //保存当前的选中状态 mChecked = checked; //固定写法, 刷新drawable的状态 refreshDrawableState();}
到这里, 你就可以显示一个和系统CompoundButton功能相同的控件了.
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.
0 0
- Android-->如何让普通View具有checked属性(背景xml支持checked状态)
- checked
- jquery checked状态判断
- android checked listview
- 带有Checked状态的ImageView
- 【jQuery】:checked选中状态选择器
- Checkbox的checked属性问题
- 关于checkbox的checked属性
- cheackbox的checked的属性
- easyui checkbox checked、disabled属性
- <input> 标签的 checked 属性
- easyui checkbox checked、disabled属性
- c# checked 关键字当属性
- jquery添加属性checked无效
- jquery 1.6+ 获取checkbox的checked属性总是checked
- jquery 1.6+ 获取checkbox的checked属性总是checked
- CheckBox控件如何自动Checked?
- itemelem.setAttribute("checked","checked");
- win7 64位系统下载
- 送快递
- GCC在C语言中内嵌汇编 asm
- Android中获取控件的宽和高
- python自定义函数实现最大值的输出
- Android-->如何让普通View具有checked属性(背景xml支持checked状态)
- strcpy相关常见面试问题【1】
- 《Python自然语言处理》学习笔记(二)
- 虚拟机的鼠标移动
- mysql模糊查询
- PHP按二维数组中的某个KEY排序
- C#中class和struct的区别
- 鼠标滑轮事件
- Java--Java中的关键字