Radiogroup的NullPointerException

时间:2015-05-05 19:49:43

标签: android nullpointerexception radio-button radio-group

我尝试制作测验应用。我需要知道选择了哪个单选按钮并用真正正确的答案检查。如果需要知道,我将trueResult(得分变量)发送到另一个ResultActivity类。

    if(((RadioButton) grp_options.getChildAt(grp_options.getCheckedRadioButtonId())).getText().equals(rightAnswers.get(i))) // Error at this expression
    {
        trueResult++;
    }

当我更改下面的部分时

  

grp_options.getChildAt(grp_options.getCheckedRadioButtonId()))

到这个

  

grp_options.getChildAt(3))

它恰当地将第四个选项与真实答案进行了比较。但我需要了解哪个rb用户检查过。问题出在这里:

  

grp_options.getCheckedRadioButtonId()

毕竟,该应用程序给了我NPE。这是日志。如果有更好的方法来完成这项工作或我失踪的一点,我很乐意学习。

2 个答案:

答案 0 :(得分:0)

我不确定,但你可以试试这个:

而不是:

if(((RadioButton) grp_options.getChildAt(grp_options.getCheckedRadioButtonId())).getText().equals(rightAnswers.get(i)))

试试这个:

if(((RadioButton) findViewById(grp_options.getCheckedRadioButtonId())).getText().toString().equals(rightAnswers.get(i)))

我认为您的问题可能是您忘记在解决方案中使用toString(),也许这样也可以:

if(((RadioButton) grp_options.getChildAt(grp_options.getCheckedRadioButtonId())).getText().toString().equals(rightAnswers.get(i)))

答案 1 :(得分:0)

getCheckedRadioButtonId返回视图ID,即。 android:id

如果您在布局中设置了ID,则应该能够使用findViewById检索元素:

grp_options.findViewById(grp_options.getCheckedRadioButtonId())