【发布时间】:2019-01-12 16:01:41
【问题描述】:
我正在尝试在 recyclerview 中添加带有 4 个 radiobuttons 的 radiogroup。我将状态保存在room 中,并将其放入适配器以设置适当的单选按钮。在执行此操作时,我在onBindViewHolder 中使用radiogroup.check() 和radiogroup.clearchek() 方法,然后每当我们滚动recyclerview 时这将自动调用radiogroup.setOnCheckedChangeListener。我的代码是这样的
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
question = quesions[position]
qTitle = question.question!!
holder.textTestQuestion.text = "" + (number + position) + " " + question.question;
holder.answerFirst.text = "a. " + question.answers?.get(0).toString()
holder.answerSecond.text = "b. " + question.answers?.get(1).toString()
holder.answerThird.text = "c. " + question.answers?.get(2).toString()
holder.answerFourth.text = "d. " + question.answers?.get(3).toString()
holder.radio_group.setTag(position)
if (question.rightAnswer != null) {
holder.radio_group.check(question.rightAnswer!!)
} else {
holder.radio_group.clearCheck()
}
holder.radio_group.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener {
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
val pos = group?.getTag() as Int
val ques = quesions[pos]
val chid = group.checkedRadioButtonId
ques.rightAnswer = checkedId
ques.answered = true
Observable.just(question).subscribeOn(Schedulers.io()).subscribe { t: Question? ->
qnADao.saveQuestion(ques)
}
}
})
}
我已经在 stackoverflow 上尝试了所有解决方案,例如在 radiogroup.checkedRadioButtonId 中检查 -1,然后在 radiogroup.isPressed 中也没有什么对我有用。所以任何帮助将不胜感激。谢谢
【问题讨论】:
标签: android kotlin android-radiobutton android-radiogroup