Android开发—RadioGroup中RadioButton默认选中问题

前言

我们知道,当一个RadioGroup(其实只要在同一个父布局)中有若干个RadioButton时,RadioButton之间存在着互斥关系,也就是说只能选中一个RadioButton。但是如果我们需要默认选中某个RadioButton该如何处理呢?
解决方法并不限制RadioButton是动态生成还是xml文件中写死。

我是坑,你一定跳过

当我接到要求默认选中某个RadioButton时,我轻蔑一笑,一个属性轻松解决。于是乎我华丽丽的跳进了下面的坑(相信你也这么跳进来的)。
我的项目要求我动态生成RadioButton,所以我直接在生成RadioButton时,判断某个条件是否成立,然后选中目标RadioButton。

for (int i = 0; i < 4; i++) {

    //选项点击监听方便举例,我这里只是简单的生成RadioButton
    RadioButton radioButton = new RadioButton(this);
    radioButton.setText(i + "");
    //然后判断是否需要默认选中
    ……
    //开始跳坑
    radioButton.setChecked(true);

    radioGroup.addView(radioButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
}

我没有说错吧,相信一上来大家都是通过setChecked这个方法去设置默认选中(如果xml文件中写死RadioButton的哥们,一定是配置属性checked=”true”)。
但是当我们运行的时候懵逼了,默认是被选中了,但是当我们修改选项的时候,发现这个默认选中的RadioButton竟然不会被取消选中。这就有点斯巴达了。
有个最容易想到的思路就是我们去遍历所有的RadioButton,然后对你点击的radioButton.setChecked(true),其余的radioButton.setChecked(false)。但是这么勤勉的做法,怠惰的我不愿意这么做啊!
怠惰怠惰怠惰!!该怎么解决呢?墨迹了这么久,马上出来解决方法。

我是出坑的方法

没有去问谷哥,度娘就找到了一个解决方法。原来需要给每个RadioButton设置一个id(xml定义的RadioButton自然会有,代码生成的可以直接调用radioButton.setId()方法),然后默认选中的时候直接利用RadioGroup的radioGroup.check(RadioButton的id)来选中默认按钮。

for (int i = 0; i < 4; i++) {
    RadioButton radioButton = new RadioButton(this);
    radioButton.setText(i + "");
    //////给每个RadioButton设置Id
    radioButton.setId(i);

    radioGroup.addView(radioButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
}
//假如需要默认选中第一个按钮
radioGroup.check(0);

后记

哪有什么后记,又不是写小说,我只是来把解决方法记录下来,省的下次跳坑找不到解决方法。如果有帮到你,有空就给个赞或者回复,没空直接右上角我也不介意。(*  ̄3)(ε ̄ *)么么哒。

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值