Android 我如何调用此radiogroup ID.clearCheck()此方法调用radiogroup click listener
详细信息:我有两个带有一些单选按钮的单选组 我想要什么:用户只需从两个组中选择一个单选按钮 我所做的:Android 我如何调用此radiogroup ID.clearCheck()此方法调用radiogroup click listener,android,kotlin,radio-button,android-radiobutton,android-radiogroup,Android,Kotlin,Radio Button,Android Radiobutton,Android Radiogroup,详细信息:我有两个带有一些单选按钮的单选组 我想要什么:用户只需从两个组中选择一个单选按钮 我所做的: rgOne.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId -> try { val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
rgOne.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
oneItem = oneList[checkedRadioButtonId]
healthy = oneItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + oneItem.title
)
if (rgTwo.checkedRadioButtonId != -1) {
rgTwo.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgTwo.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
twoItem = twoList[checkedRadioButtonId]
unhealthy = twoItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + twoItem.title
)
if (rgOne.checkedRadioButtonId != -1) {
rgOne.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgOne.setOnCheckedChangeListener(onCheckedChangeListener)
rgTwo.setOnCheckedChangeListener(onCheckedChangeListener)
private val onCheckedChangeListener =
RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (group!!.id == R.id.rgOne) {
try {
AppLog.e("Call healthy")
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgTwo.checkedRadioButtonId != -1) {
resetRadioGroup(rgTwo)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
} else {
try {
AppLog.e("Call Unhealthy")
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgOne.checkedRadioButtonId != -1) {
resetRadioGroup(rgOne)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun resetRadioGroup(rgType: RadioGroup) {
rgType.setOnCheckedChangeListener(null)
rgType.clearCheck()
rgType.setOnCheckedChangeListener(onCheckedChangeListener)
}
面对这个问题:当我调用这个rgOne.clearCheck()或rgTwo.clearCheck()时,再次调用整个广播组clicked listener并取消选中我选中的内容。第一次完美地工作,就像没有选择任何东西一样
这段代码有什么问题,我需要更改什么。在Activity的onCreate()或Fragment的onCreateView()内调用这一行:
rgOne.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
oneItem = oneList[checkedRadioButtonId]
healthy = oneItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + oneItem.title
)
if (rgTwo.checkedRadioButtonId != -1) {
rgTwo.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgTwo.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
twoItem = twoList[checkedRadioButtonId]
unhealthy = twoItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + twoItem.title
)
if (rgOne.checkedRadioButtonId != -1) {
rgOne.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgOne.setOnCheckedChangeListener(onCheckedChangeListener)
rgTwo.setOnCheckedChangeListener(onCheckedChangeListener)
private val onCheckedChangeListener =
RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (group!!.id == R.id.rgOne) {
try {
AppLog.e("Call healthy")
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgTwo.checkedRadioButtonId != -1) {
resetRadioGroup(rgTwo)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
} else {
try {
AppLog.e("Call Unhealthy")
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgOne.checkedRadioButtonId != -1) {
resetRadioGroup(rgOne)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun resetRadioGroup(rgType: RadioGroup) {
rgType.setOnCheckedChangeListener(null)
rgType.clearCheck()
rgType.setOnCheckedChangeListener(onCheckedChangeListener)
}
声明此变量:
rgOne.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
oneItem = oneList[checkedRadioButtonId]
healthy = oneItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + oneItem.title
)
if (rgTwo.checkedRadioButtonId != -1) {
rgTwo.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgTwo.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
twoItem = twoList[checkedRadioButtonId]
unhealthy = twoItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + twoItem.title
)
if (rgOne.checkedRadioButtonId != -1) {
rgOne.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgOne.setOnCheckedChangeListener(onCheckedChangeListener)
rgTwo.setOnCheckedChangeListener(onCheckedChangeListener)
private val onCheckedChangeListener =
RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (group!!.id == R.id.rgOne) {
try {
AppLog.e("Call healthy")
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgTwo.checkedRadioButtonId != -1) {
resetRadioGroup(rgTwo)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
} else {
try {
AppLog.e("Call Unhealthy")
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgOne.checkedRadioButtonId != -1) {
resetRadioGroup(rgOne)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun resetRadioGroup(rgType: RadioGroup) {
rgType.setOnCheckedChangeListener(null)
rgType.clearCheck()
rgType.setOnCheckedChangeListener(onCheckedChangeListener)
}
重置放射组的功能:
rgOne.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
oneItem = oneList[checkedRadioButtonId]
healthy = oneItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + oneItem.title
)
if (rgTwo.checkedRadioButtonId != -1) {
rgTwo.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgTwo.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
try {
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
twoItem = twoList[checkedRadioButtonId]
unhealthy = twoItem.code!!
AppGlobal.displayShortToast(
this, "You selected: " + twoItem.title
)
if (rgOne.checkedRadioButtonId != -1) {
rgOne.clearCheck()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
})
rgOne.setOnCheckedChangeListener(onCheckedChangeListener)
rgTwo.setOnCheckedChangeListener(onCheckedChangeListener)
private val onCheckedChangeListener =
RadioGroup.OnCheckedChangeListener { group, checkedId ->
if (group!!.id == R.id.rgOne) {
try {
AppLog.e("Call healthy")
val checkedRadioButtonId: Int = rgOne.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgTwo.checkedRadioButtonId != -1) {
resetRadioGroup(rgTwo)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
} else {
try {
AppLog.e("Call Unhealthy")
val checkedRadioButtonId: Int = rgTwo.checkedRadioButtonId
if (checkedRadioButtonId != null) {
if (rgOne.checkedRadioButtonId != -1) {
resetRadioGroup(rgOne)
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun resetRadioGroup(rgType: RadioGroup) {
rgType.setOnCheckedChangeListener(null)
rgType.clearCheck()
rgType.setOnCheckedChangeListener(onCheckedChangeListener)
}