我正在研究一种自我评估功能,它将使人们知道他们是否有被电晕感染的危险,从而为他们提供是否接受测试的建议。我创建了多个单选按钮,让患者可以检查不同的症状,为每个单击的单选按钮分配一个值,该单选按钮应该与其他值一起添加,以便找到一个分数,我们可以根据该分数知道患者是否应该继续进行covid-19测试。我需要修复代码的帮助,以便能够读取和添加每个单选按钮的所有值。这是我的代码。
if (view is RadioButton) {
// Is the button now checked?
val checked = view.isChecked
// Check which radio button was clicked
when (view.getId()) {
R.id.yes_1 ->
if (checked) {
val yes1= 1
Toast.makeText(this, "Yes 1", Toast.LENGTH_LONG).show()
}
R.id.no_1 ->
if (checked){
val no1=0
Toast.makeText(this, " No 1", Toast.LENGTH_SHORT).show()
}
R.id.yes_2 ->
if (checked) {
val yes2= 1
Toast.makeText(this, "Yes 2", Toast.LENGTH_LONG).show()
}
R.id.no_2 ->
if (checked) {
val no2= 0
Toast.makeText(this, "No 2", Toast.LENGTH_SHORT).show()
}
R.id.yes_3 ->
if (checked) {
val yes3=1
Toast.makeText(this, "Yes 3", Toast.LENGTH_LONG).show()
}
R.id.no_3 ->
if (checked) {
val no3=0
Toast.makeText(this, "No 3", Toast.LENGTH_SHORT).show()
}
R.id.yes_4 ->
if (checked) {
val yes4=1
Toast.makeText(this, "Yes 4", Toast.LENGTH_LONG).show()
}
R.id.no_4 ->
if (checked) {
val no4=0
Toast.makeText(this, "No 4", Toast.LENGTH_SHORT).show()
}
R.id.yes_5 ->
if (checked) {
val yes5=5
Toast.makeText(this, "Yes 5", Toast.LENGTH_LONG).show()
}
R.id.no_5 ->
if (checked) {
val no5=0
Toast.makeText(this, "No 5", Toast.LENGTH_SHORT).show()
}
R.id.yes_6 ->
if (checked) {
val yes6=5
Toast.makeText(this, "Yes 6", Toast.LENGTH_LONG).show()
}
R.id.no_6 ->
if (checked) {
val no6=0
Toast.makeText(this, "No 6", Toast.LENGTH_SHORT).show()
}
}
val assesment_point= yes1 + n01 + yes2 + no2 +yes3 + no3 + yes4 + no4 + yes5 + no5 + yes6 + no6
}
}
简短的答案是scope定义是否可以访问变量。在您的情况下,这些值仅存在于when case块内,而不存在于外部。
快速解决方法是在外部预先定义它们,并仅更改when块内部的值。
(offtopic:您对radio button sample有点误解了。在您的情况下,您不想对每个单选按钮单击做出反应,而是只要按下“提交”按钮即可。同样,您也不需要“是6”一个“ answer6”,如果不是,则为“ 0”,如果是,则为“ 1”。这已经可以大大降低代码复杂度...)]