Android的ClearCheck()对RadioGroup有误吗?

Android的ClearCheck()对RadioGroup有误吗?,第1张

概述我在使用RadioGroup的clearChecked()时遇到了问题.我正在向用户显示一个多项选择题,在用户选择答案后,我会检查答案,给他一些反馈,然后转到下一个问题.在转到下一个问题的过程中,我清楚检查RadioGroup.任何人都可以向我解释为什么onCheckedChanged方法被调用3次?一旦实际发生了变化

我在使用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){    if (questionNumber >= this.questionSet.size()){        // means we are past the question set        // we're going to the score activity        this.goToscoreActivity();        return;    }    //clearing the check    gr.clearCheck();    // give change the Feedback back to question    imgFeedback.setimageResource(R.drawable.question_mark); //OTHER CODE HERE}

并且run方法看起来像这样

public voID run() {        questionNumber++;        changetoQuestion(questionNumber);    }

解决方法:

我发现如果一个项目被检查并且您在无线电组上调用clearCheck(),它将调用onCheckedChanged两次.第一次使用已检查项目的ID,第二次使用-1 / VIEw.NO_ID.恕我直言,这是一个错误,显然它已经存在至少1.6.请参阅此谷歌代码错误报告:http://code.google.com/p/android/issues/detail?id=4785

似乎唯一的解决方案是检查实际的Radiobutton.isChecked()并测试它是真还是假.这种方式违背了onCheckedChanged返回项目ID的目的,因为你现在必须要么保留对这些按钮的引用,要么每次都调用findVIEwByID.

我怀疑他们会解决这个问题,因为改变它可能会以意想不到的方式破坏现有代码.

总结

以上是内存溢出为你收集整理的Android的ClearCheck()对RadioGroup有误吗?全部内容,希望文章能够帮你解决Android的ClearCheck()对RadioGroup有误吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1097393.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存