Radiogroup 的 NullPointerException
NullPointerException for Radiogroup
我尝试制作一个测验应用程序。我需要知道选择了哪个单选按钮,并用真正正确的答案进行检查。如果需要知道,我将 trueResult(score var.) 发送到另一个 ResultActivity class。
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))
它正确地将第 4 个选项与真实答案进行了比较。但我需要了解哪个 rb 用户检查过。所以问题就在这里:
grp_options.getCheckedRadioButtonId()
毕竟,该应用程序给了我 NPE。这是日志。如果有更好的方法来完成这项工作或我缺少的一点,我很乐意学习。
我不确定,但你可以试试这个:
而不是这个:
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)))
getCheckedRadioButtonId
returns 视图 ID,即。 android:id
.
如果您在布局中设置了 id,您应该能够通过 findViewById
:
检索元素
grp_options.findViewById(grp_options.getCheckedRadioButtonId())
我尝试制作一个测验应用程序。我需要知道选择了哪个单选按钮,并用真正正确的答案进行检查。如果需要知道,我将 trueResult(score var.) 发送到另一个 ResultActivity class。
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))
它正确地将第 4 个选项与真实答案进行了比较。但我需要了解哪个 rb 用户检查过。所以问题就在这里:
grp_options.getCheckedRadioButtonId()
毕竟,该应用程序给了我 NPE。这是日志。如果有更好的方法来完成这项工作或我缺少的一点,我很乐意学习。
我不确定,但你可以试试这个:
而不是这个:
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)))
getCheckedRadioButtonId
returns 视图 ID,即。 android:id
.
如果您在布局中设置了 id,您应该能够通过 findViewById
:
grp_options.findViewById(grp_options.getCheckedRadioButtonId())