【发布时间】:2019-02-27 16:26:31
【问题描述】:
我想将我的 RadioGroupView 设置为不可点击,以便用户无法点击按钮。我试过mRadioGroup.isActivated = false,但它对我的 RadioGroup 视图没有影响。有人给我提示吗?
【问题讨论】:
标签: android radio-group android-radiogroup
我想将我的 RadioGroupView 设置为不可点击,以便用户无法点击按钮。我试过mRadioGroup.isActivated = false,但它对我的 RadioGroup 视图没有影响。有人给我提示吗?
【问题讨论】:
标签: android radio-group android-radiogroup
禁用每个按钮
for (int i = 0; i < mRadioGroup.getChildCount(); i++) {
mRadioGroup.getChildAt(i).setEnabled(false);
}
【讨论】:
你试过设置RadioGroupView clickable = false?
如果它不起作用,您可以放置一个视图覆盖整个 RadioGroup 布局并将此视图设置为可点击 = true。
【讨论】:
为了禁用单选组内的单选按钮,您需要在radioButton1.setEnabled(false) 方法的帮助下手动禁用每个按钮。
但是更好的方法是在 getChildAt() 方法的帮助下循环遍历 mRadioGroup 中的单选按钮
for (int i = 0; i < mRadioGroup.getChildCount(); i++){
mRadioGroup.getChildAt(i).setEnabled(false);
}
【讨论】:
在 Prithvi Bhola's answer 的基础上,您可以使用 Kotlin 扩展函数,只需将其添加到 Activity:
fun RadioGroup.setChildrenEnabled(enabled: Boolean) {
for (i in 0 until childCount) {
getChildAt(i).isEnabled = enabled
}
}
然后,只要您需要,您可以简单地禁用或启用RadioGroup 中的所有RadioButtons:
mRadioGroup.setChildrenEnabled(false)
【讨论】:
RadioGroup 不能直接禁用,我们必须循环遍历单选按钮并将其设置为 false。
试试这个:
for(int i = 0; i < rg.getChildCount(); i++){
((RadioButton)rg.getChildAt(i)).setEnabled(false);
}
希望这会有所帮助。
【讨论】: