Android CompoundButton[通俗易懂]

Android CompoundButton[通俗易懂]为什么80%的码农都做不了架构师?>>>…

大家好,又见面了,我是你们的朋友全栈君。

android.widget.Button

     android.widget.CompoundButton

RadioGroup不是CompoundButton的子类,所以不能直接使用CompoundButton的回调函数,而只能

用RadioGroup.OnCheckedChangeListener()

而 CheckBox是CompoundButton的子类,可以直接使用CompoundButton的回调函数,可以直接

使用CompoundButton的CompoundButton.OnCheckedChangeListener()

一个带有选中/未选中状态的按钮。当按钮按下或点中时自动改变状态。

三、公共方法

public boolean dispatchPopulateAccessibilityEvent (AccessibilityEvent event)

在子视图的构建时分派一个辅助事件。(译者注:通过源码可以看出,视图构建时设置其选中状态。)

参数

event 事件

返回值

如果事件全部完成返回True

public boolean isChecked ()

(译者注:是否选中)

public void onRestoreInstanceState (Parcelable state)

允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。

参数

state 返回以前调用onSaveInstanceState()保存下来的状态。

public Parcelable onSaveInstanceState ()

允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。

你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。

返回值

返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null

public boolean performClick ()

如果视图定义了OnClickListener监听器,调用此方法来执行。

返回值

定义了的OnClickListener被调用返回True,否则返回False

public void setButtonDrawable (Drawable d)

给按钮背景设置一个可绘制对象(如:图像)

参数

d 用作背景的可绘制对象(如:图像)

public void setButtonDrawable (int resid)

通过资源Id给按钮背景设置一个图像

参数

resid 作为背景图像的资源id

public void setChecked (boolean checked)

改变按钮的选中状态

参数

checked true选中,false非选中

public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener listener)

注册一个在按钮状态发生改变时执行的回调函数

参数

listener 当选中状态改变时调用的函数

public void toggle ()

改变选中状态为当前状态的逆状态

  四、受保护方法

protected void drawableStateChanged ()

在视图状态的变化影响到所显示可绘制的状态时调用这个方法。

确保在重载时中调用父类方法

protected int[] onCreateDrawableState (int extraSpace)

为当前视图生成新的可绘图区状态。这个方式当缓存的图像绘图区状态确定失效时通过视图系统调用。你可以使用getDrawableState()方法重新取得当前的状态。

参数

extraSpace 如果为非零,这是你应该返回的数组在你可以存放你的状态的额外条目的数量。

返回值

返回一个记录着视图中当前绘图区状态的数组

protected void onDraw (Canvas canvas)

实现你自己的绘制。

参数

canvas 在画布上绘制背景

protected boolean verifyDrawable (Drawable who)

如果你的视图子类显示他自己的可视化对象,他将要重写此方法并且为了显示可绘制返回true。此操作允许进行绘制时有动画效果。

  确认当重写从方法时,需调用父类相应方法。

参数

who 需判断的可绘制对象(Drawable)。如果是你要显示的对象,返回True,否则返回调用父类的结果。

返回值

boolean
如果可绘制对象(
Drawable
)已经在视图中显示,返回
True
否则返回
false
。并且此处不允许使用动画。

转载于:https://my.oschina.net/amigos/blog/63010

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133792.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月2日 上午8:20
下一篇 2022年5月2日 上午8:40


相关推荐

  • Service Mesh详解

    Service Mesh详解ServiceMesh简介:这个词最早使用由开发Linkerd的Buoyant公司提出,并在内部使用。2016年9月29日第一次公开使用这个术语。2017年的时候随着Linkerd的传入,ServiceMesh进入国内技术社区的视野。最早翻译为“服务啮合层”,这个词比较拗口。用了几个月之后改成了服务网格。微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(SmallBuildingBlocks)为基础,利用模块化

    2025年5月31日
    6
  • VirtualBox安装VBoxGuestAdditions增强功能

    VirtualBox安装VBoxGuestAdditions增强功能VirtualBox 的增强功能 VBoxGuestAdd 太酷啦 VirtualBox 没装增强功能的时候实在是弱爆了 只能小窗口访问 并且总是要通过 hostkey 切换鼠标 非常麻烦 一开始我只是想要扩大虚拟机的分辨率 不想它总是那么小窗口不好用 then 发现安装 VBoxGuestAdd 可以解决好多问题 VirtualBoxGu 的功能

    2026年3月26日
    0
  • 孙鑫Java视频教程(全12CD)

    孙鑫Java视频教程(全12CD)写了5年的C语言,最近由于工作关系,需要快速掌握JAVA,多亏孙鑫老师的视频,让我从入门到“精通”,推荐JAVA新人学习。特点:1、覆盖面全,讲解结合例子内容实在,看10课的介绍就知道2、如果有面向对象的基础,学起来更快3、附带PPT,可以方便摘录其中内容形成自己的学习笔记…http://www.sunxin.org/video/java.htm

    2022年5月17日
    54
  • Python一行代码教你实现列表嵌套排序

    Python一行代码教你实现列表嵌套排序

    2021年7月14日
    116
  • Omnibus GitLab 使用说明

    Omnibus GitLab 使用说明1 OmnibusGitLa 使用说明 gt 参考 https gitlab com gitlab org omnibus gitlab blob master README md backup and restore omnibus gitlab configuratio 1 说明该项目为 GitLab 创建了特定于平台的平台特有的可下载软件包 https about gitlab

    2026年3月18日
    2
  • origin绘图基础1

    origin绘图基础11.绘制带有置信区间的拟合曲线分析-拟合-拟合曲线图-勾选之信贷(默认95%);图片来源:https://www.originlab.com/index.aspx?go=Products/Origin/DataAnalysis/CurveFitting置信区间估计(confidenceintervalestimate):利用估计的回归方程,对于自变量x的一个给定值x0,求出因变量y的平均值的估计区间。预测区间估计(predictionintervalestimate):利用估计

    2022年5月6日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号