我有一个单选按钮列表。我希望在应用程序首次启动时选择一个。
然后我将从无线电组中选择一些将被取消选择的其他单选按钮。
这是我的代码:
for (x in taskTypes) {
var radioButton = RadioButton(context)
radioButton.setOnCheckedChangeListener { button: CompoundButton?, b: Boolean ->
if (b) {
......
}
}
taskRadioGroup.addView(radioButton)
}
答案 0 :(得分:0)
如果您使用radioGroup
,则应自动取消选择之前选择的radioButton
。如果您希望在启动活动时选择特定radioButton
,则只需在onCreate()
中添加以下行:
yourDesiredRadioButton.isChecked = true;
答案 1 :(得分:0)
您可以使用setTag();
方法为群组中的所有按钮提供唯一标识,并使用getTag()
答案 2 :(得分:0)
如果要选择要选择的第一个RadioButton
,可以执行以下操作:
var isChecked = true;
for (x in taskTypes) {
var radioButton = RadioButton(context)
if(isChecked){
isChecked = false;
radioButton.checked = true;
}
taskRadioGroup.addView(radioButton)
}
taskRadioGroup.setOnCheckedChangeListener { button: CompoundButton?, b: Boolean ->
if (b) {
......
}
}
答案 3 :(得分:0)
我想在首次启动应用程序时选择一个
在创建方法
上 hardradioButton!!.isChecked = true
制作您的radioGroup的监听器 在创建方法
radioGroup!!.setOnCheckedChangeListener(this)
实施OnCheckedChangeListener
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
when (checkedId) {
R.id.hard_radiobuttonm -> {
//do whatever
}
R.id.ok_radiobuttonm -> {
//do whatever
}
R.id.easy_radiobuttonm -> {
//do whatever
}
else -> {
}
}
}
答案 4 :(得分:0)
我不确定为什么它总是check
第一个RadioButton,即使在RadioGroup中添加了ALL无线电。我的测试也证实了你的错误(也许不是bug,我只是不确定原因)。
以下是我解决问题的方法:
var radioGroup = RadioGroup(applicationContext)
for (i: Int in 0..4){
var radio = RadioButton(applicationContext)
radio.setText("button position ${i+1}")
radioGroup.addView(radio)
Log.d("LOG", "Working on radio ${i+1}")
}
radioGroup.check(0)
linearParent.addView(radioGroup)
注意我是如何通过执行check(0)
的{{1}}来设置第一个无线电的。这是因为每当我从radioGroup
本身设置时,该广播将始终处于radio
状态:
checked