CompoundButton 具有两种状态的按钮,选中和未选中。当按钮被按下或点击时,状态会自动改变。 这是一个抽象类,目前有的子类有 复选框,单选按钮,开关,切换按钮。...CompoundButton的接口 interface CompoundButton.OnCheckedChangeListener 当复合按钮的选中状态改变时调用回调的接口定义。...CompoundButton的XML 属性 android:button Drawable 用于按钮图形(例如,复选框和单选按钮)。 android:buttonTint 应用于按钮图形的色调。...CompoundButton的公共方法 void autofill(AutofillValue value) 自动填充此视图的内容value。...void setButtonIcon(Icon icon) 将此 CompoundButton 的按钮设置为指定的 Icon。
android.widget.Button android.widget.CompoundButton RadioGroup不是CompoundButton的子类,所以不能直接使用CompoundButton...的回调函数,而只能 用RadioGroup.OnCheckedChangeListener() 而 CheckBox是CompoundButton的子类,可以直接使用CompoundButton的回调函数...,可以直接 使用CompoundButton的CompoundButton.OnCheckedChangeListener() 一个带有选中/未选中状态的按钮。...(boolean checked) 改变按钮的选中状态 参数 checked true选中,false非选中 public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener
SwitchCompat ToggleButton 间接子类 AppCompatCheckBox AppCompatRadioButton 使用 相比较Button而言多出了一个监听事件(接口) CompoundButton.OnCheckedChangeListener...实现方法:onCheckedChanged( CompoundButton buttonView,boolean isChecked) buttonView 复合按钮视图的状态。...) — 调用此视图的OnClickListener(如果已定义) setChecked(boolean checked) — 更改这个按钮的状态 setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener...http://android.xsoftlab.net/reference/android/widget/CompoundButton.html ---- 知识贵在分享!
CompoundButton相信大家都很熟悉了。 OnCheckedChangeListener相信大家也很熟悉。...不过不知道大家有没有碰到类似的问题: 在某个CompoundButton.OnCheckedChangeListener中请求网络接口。...在其他一些地方,例如onCreate/onCreateView/setUserVisableHint等等方法中, 从另一个接口取得数据,需要将取得的状态重新的给予这个CompoundButton。...写一个类,继承自系统自带的CompoundButton。 并且重写方法:setChecked、setOnCheckedChangeListener、toggle 并且重载setChecked。...代码如下: public class CustomSwitchCompat extends CompoundButton { private OnCheckedChangeListener mOnCheckedChangeListener
前言 本章内容是android.widget.CompoundButton,翻译来自德罗德,再次感谢德罗德 !...www.cnblogs.com/ Android中文翻译组:http://www.cnblogs.com/over140/ 正文 一、结构 public abstract class CompoundButton...android.view.View android.widget.TextView android.widget.Button android.widget.CompoundButton...改变按钮的选中状态 参数 checked true选中,false非选中 public void setOnCheckedChangeListener (CompoundButton.OnCheckedChangeListener
有些开发者看到这个可能会有些一头雾水,但其实CompoundButton是抽象的复合按钮,因为是抽象类,所以不能直接使用。...实际开发中用的是CompoundButton类的几个派生类,主要有复选框CheckBox、单选按钮RadioButton以及开关按钮Switch,这些派生类都可以使用Compound的属性和方法。...CompoundButton在布局文件中主要有如下两个属性: checked:指定按钮的勾选状态,true表示勾选,false表示未勾选。默认未勾选。 button:指定左侧勾选图标的图形。...CompoundButton在代码中可以使用下面4种方法进行设置 setChecked:设置按钮的勾选状态 setButtonDrawable:设置左侧勾选图标的图形 setOnCheckedChangeListener
问题 当我们只想改变CompoundButton的状态时,setChecked会出现onCheckedChanged的情况。...原因 源码可见只要CompoundButton设置了setOnCheckedChangeListener,就会再每次调用setChecked()的时候再次触发onCheckedChanged。...setOnCheckedChangeListener(null),之后再加回来 所以最好不要在onCheckedChange中写逻辑,如果要写也最好不要再setChecked,否则需要自己设置屏蔽;并且CompoundButton
经历过了前面一系列的讲解,下面我们直接来看看系统里面的CheckBox与CompoundButton类的源码文件。你肯定会发现很多熟悉的地方。.../core/res/res/values/attrs.xml文件: <!...里面有这个方法,我们看看CompoundButton的这个方法。...在CompoundButton里面实现了这个方法,它不再直接执行View里面的这个方法了。...最后把完整的CompoundButton源码贴出来,可以对照上面将的,然后再根据前面讲的详解refreshDrawableList()的执行流程这个过程理解理解。
android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton...sleepBox.setOnClickListener(listener); // dotaBox.setOnClickListener(listener); } //OnCheckedChangeListener,CompoundButton...的接口,可以理解为转为CheckBox设计的 class CheckBoxListener implements CompoundButton.OnCheckedChangeListener{...@Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
当RadioGroup与CompoundButton同时存在且都要监听事件时CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener...howHotRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()... friendlyCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener
在一个类中同时有CompoundButton 和 RadioGroup vSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener...() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {...解决版本是: vSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override...public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated
当我们想要实现了一个简单的有状态切换的控件的时候,我们通常会去实现,CompoundButton来实现我们想要的一个效果,最常见的就是系统的CheckBox,但是在使用的过程中,我们会发现一个问题就是:
在今天的开发工作当中,要同时用到ToggleButton和RadioGroup的监听事件,ToggleButton的监听事件需要导入CompoundButton.onCheckedChangeListener...Toast.LENGTH_SHORT).show(); } }); //设置ToggleButton监听事件 toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener...() { @Override public void onCheckedChanged(CompoundButton button, boolean isChecked) { //.....这里是具体实现的功能代码...(Switch对象的监听事件和ToggleButton的是一样的,也是用到CompoundButton.onCheckedChangeListener) 发布者:全栈程序员栈长,转载请注明出处:https
2.1 第一种想法,已近在大佬的帮助下解决,就是利用CompoundButton(抽象类按钮)设置一个监听器,根据监听器的名称(listener),监听全部的CheckBox控件,只需要为CheckBox...3.思路:利用CompoundButton监控所有CheckBox,当判断某一个被选中时,利用StringBuffer的append方法,完成字符串的连接。...的“勾选状态变化监听器”(OnCheckedChangeListener),其中listener为监听器名称 CompoundButton.OnCheckedChangeListener...listener = new CompoundButton.OnCheckedChangeListener() { @Override //监听器的...onCheckedChanged事件 public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked
我有以下自定义CompoundButton: public class CustomCompoundButton extends CompoundButton { public CustomCompoundButton
() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean...b) { // 提示用户选择的城市 showSelectCity(compoundButton); }...() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean...() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean...(CompoundButton compoundButton){ // 获取复选框的文字提示 String city = compoundButton.getText()
本篇文章就讲解了一下CompoundButton抽象类下的三个实现控件类的使用,在Android4.0之后,又新加入了一个控Switch,对它的 使用与之上介绍的三个控件类似,这里就不再详细讲解了。...CompoundButton RadioButton(单选按钮)、CheckBox(复选按钮)、ToggleButton(开关按钮)都继承自 android.widget.CompoundButton...类,而CompoundButton又继承自Button类,在这个类中封装了一个 checked属性,用于判断是否被选中,这也是它与Button的不同,对其进行了扩展,这个属性在这三个控件中的用法是一样的...com.example.changebutton; import android.app.Activity; import android.os.Bundle; import android.widget.CompoundButton...; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.LinearLayout; import
{ private int checkId = -1; private CompoundButton.OnCheckedChangeListener mChildOnCheckedChangeListener...(v instanceof CompoundButton.OnCheckedChangeListener)) { ((RadioButton) v).setOnCheckedChangeListener...(this); } } } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {...= -1) { CompoundButton view = (CompoundButton) findViewById(checkId); //未选中的RadioButton被选中 if (checkId...= -1) { this.checkId = -1; CompoundButton view = (CompoundButton) findViewById(this.checkId); //将选中的置为未选中
CheckedStateTracker.onCheckedChanged(RadioGroup.java:358) 09-03 16:55:16.820:E/AndroidRuntime(16873): atandroid.widget.CompoundButton.setChecked...(CompoundButton.java:130) 09-03 16:55:16.820: E/AndroidRuntime(16873): atandroid.widget.CompoundButton.toggle...(CompoundButton.java:87) 09-03 16:55:16.820:E/AndroidRuntime(16873): atandroid.widget.RadioButton.toggle...(RadioButton.java:76) 09-03 16:55:16.820:E/AndroidRuntime(16873): atandroid.widget.CompoundButton.performClick...(CompoundButton.java:99) 09-03 16:55:16.820:E/AndroidRuntime(16873): atandroid.view.View$PerformClick.run
(CompoundButton.java:130) 09-20 15:26:51.922: W/System.err(21923): at android.widget.CompoundButton.toggle...(CompoundButton.java:87) 09-20 15:26:51.922: W/System.err(21923): at android.widget.RadioButton.toggle...(RadioButton.java:76) 09-20 15:26:51.922: W/System.err(21923): at android.widget.CompoundButton.performClick...(CompoundButton.java:99) 09-20 15:26:51.922: W/System.err(21923): at android.view.View$PerformClick.run...(CompoundButton.java:130) 09-20 15:26:51.986: E/AndroidRuntime(21923): at android.widget.CompoundButton.toggle
领取专属 10元无门槛券
手把手带您无忧上云