赞
踩
需要在主活动(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的响应。
可以在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类的父类,该类对应的按键状态有两种:一种是选中状态,另一种是未选中状态。
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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。