android radiogroup清空,Android的ClearCheck()对RadioGroup有误吗?

在Android应用中,当使用RadioGroup的clearCheck()方法时,发现onCheckedChanged监听器被调用了三次。第一次是用户选择,第二次是调用clearCheck(),第三次是用户再次进行选择。文章探讨了这个问题并提供了相关代码示例,展示了如何在检查答案后切换到下一个问题,并在切换过程中清空RadioGroup的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在使用RadioGroup的clearChecked()时遇到了问题.我正在向用户显示一个多项选择题,在用户选择答案后,我会检查答案,给他一些反馈,然后转到下一个问题.在转到下一个问题的过程中,我清楚检查RadioGroup.

任何人都可以向我解释为什么onCheckedChanged方法被调用3次?一旦实际发生了变化(用户更改),一旦我清除检查(使用-1作为选定的ID)和一次之间(用户再次更改)?

据我所知,第二次触发是由clearCheck引起的.代码如下:

private void checkAnswer(RadioGroup group, int checkedId){

// this makes sure it doesn't blow up when the check is cleared

// also we don't check the answer when there is no answer

if (checkedId == -1) return;

if (group.getCheckedRadioButtonId() == -1) return;

// check if correct answer

if (checkedId == validAnswerId){

score++;

this.giveFeedBack(feedBackType.GOOD);

} else {

this.giveFeedBack(feedBackType.BAD);

}

// allow for user to see feedback and move to next question

h.postDelayed(this, 800);

}

private void changeToQuestion(int questionNumber){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值