Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我如何调用此radiogroup ID.clearCheck()此方法调用radiogroup click listener_Android_Kotlin_Radio Button_Android Radiobutton_Android Radiogroup - Fatal编程技术网

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)
}