Android Studio中RadionButton的响应方法2-2

本文详细介绍了在Android编程中如何处理RadioButton的点击事件。可以通过在MainActivity中定义`onRadionButtonClicked`方法,根据RadioButton的ID判断选中状态,并进行相应处理。此外,也可以通过RadioButton类的`setOnCheckedChangeListener`方法添加响应,利用匿名内部类实现`CompoundButton.OnCheckedChangeListener`接口,监听选中状态变化。另外,使用RadioGroup类可以管理一组RadioButton,确保同一时间只有一个被选中,同样通过`setOnCheckedChangeListener`设置响应,监听RadioGroup中选中RadioButton的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1.2 定义“onRadionButtonClicked”方法

需要在主活动(MainActivity)中定义“onRadionButtonClicked”方法,如图4所示。

图4 “onRadionButtonClicked”方法

“onRadionButtonClicked”方法的访问权限public,返回值必须是void,参数必须是View的对象。在图4①中,通过isChecked()方法得到按键是否被选中,如果被选中,则变量checked是true,否则是false。接下来通过switch...case语句判断哪个RadionButton被选中,如果是ID为layout3_rb1的RadionButton被选中,并且当前状态checked是true的话(图4②),就进行相应处理;如果是ID为layout3_rb2的RadionButton被选中,使用相同的方法处理。通过以上代码,就可以实现RadionButton的响应。

2.2 通过RadioButton通过RadionButton类的对象添加响应

可以在MainActivity.java的MainActivity类中自定义initWidget()方法,在该方法中,通过代码RadionButton类的对象添加RadionButton的响应,如图5所示。

图5 通过RadionButton类的对象添加的响应

其中,通过rb1是图2中“hello”按键的对象,通过rb1调用的setOnCheckedChangeListener()方法(图5①)的作用是设置一个回调方法,当rb1表示的按键即“hello”被选中后,将会调用该方法。setOnCheckedChangeListener()方法的参数是CompoundButton.OnCheckedChangeListener接口的对象,该接口定义了一个回调方法onCheckedChanged(),当按键被选中之后,会调用该方法。在图5①中可以看到,setOnCheckedChangeListener()方法的参数中通过new创建了一个实现CompoundButton.OnCheckedChangeListener接口的匿名类的对象,在该匿名类中重写了回调方法onCheckedChanged()(图5②)。回调方法onCheckedChanged()的第一个参数指定了状态发生改变的按键,第二个参数表示选中状态的变化,当按键从未选中变为选中时,b的值是true,当按键从选中变为未选中时,b的值是false。

需要注意的是,在MainActivity类的onCreate()方法中要调用自定义的initWidget()方法。

相关链接1 CompoundButton类,是android.widget.Button类的子类,是RadionButton类的父类,该类对应的按键状态有两种:一种是选中状态,另一种是未选中状态。

2.3 通过RadionGroup类的对象添加响应

RadionGroup类的父类是android.widget.LinearLayout,该视图的作用是将多个RadionButton放在同一组中,在同一组的多个RadionButton在同一时刻只能有一个是被选中的。可以通过RadionGroup类的对象添加响应,如图6所示。

图6 通过RadionGroup类的对象添加响应

其中,layout3_rg1是图1中RadioGroup的ID,rg1是RadioGroup类的对象。通过rg1调用的setOnCheckedChangeListener()方法设置RadioGroup的响应(图6①),该方法的参数是实现RadioGroup.OnCheckedChangeListener接口的类的对象,在图6②中通过new创建了一个实现该接口的匿名类的对象,并且重写了该接口的onCheckedChanged()方法,当RadioGroup中的RadionButton选中状态发生变化时,就会调用onCheckedChanged()方法。该方法的第一个参数表示发生变化的RadioButton所在的RadioGroupd;第二个参数表示发生变化的RadioButton的ID。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值