Android Studio(Java)未接收顺序正确的按钮值
我目前正在开发一个游戏,玩家应该通过选择3个按钮(其中1个是答案)和一个“下一步”按钮来解决X+Y问题(通过将组件的值替换为下一个问题的值)。但是,我无法统计答案,因为我的测试选择(按钮)总是测试下一个问题的值
要提供一点背景信息,
questionCategories是不同级别的ArrayList的ArrayList
e、 g.问题类别。get(selectedLevel)返回不同算法的数组列表
jumbleOptions用正确和错误答案填充3个按钮,这些按钮位于选项
在回答问题1时,显示的选项值属于问题1,但测试值(在测试中)来自问题2
例如
Qn1:3+5-A:2,B:8,C:4
Qn2:8+2-A:10,B:11,C:12
当我在B上尝试Qn1并单击“下一步”转到下一个问题(并测试正确性)时,我的程序不是测试B:8,而是测试B:11。我试图记录每个按钮的捕获值和问题的答案,但它们都是正确的,我不确定哪里出了问题
代码片段位于创建的视图中,由于原始元素中的占位符文本,第一个问题被初始化为显示。很抱歉,如果代码片段没有太多意义,请尽量保持简短,以便(希望)更具可读性
// Initialize first question to display
questionNumber.setText("Question " + String.valueOf(qnNumDisplay));
questionTitle.setText(((questionCategories.get(selectedLevel)).get(0)).toString());
jumbleOptions(((questionCategories.get(selectedLevel)).get(0)));
do {
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Question q = (questionCategories.get(selectedLevel)).get(numQnAnswered);
// Increment question number related variable
numQnAnswered++;
// Replace displayable elements with next question
//Question Number
questionNumber.setText("Question " + String.valueOf(numQnAnswered));
questionTitle.setText(q.toString());
jumbleOptions(((questionCategories.get(selectedLevel)).get(numQnAnswered)));
boolean test = checkAnswer(String.valueOf(q.getAnswer()),
options.get(SELECTED_OPTION).getText().toString());
Log.d("Answer Correctness", String.valueOf(test));
}
});
counter++;
} while (counter < NUMBER_OF_QNS);
# 1 楼答案
让我们模拟一下这个场景: 第一个问题手动设置,下一个问题基于按钮单击加载。我假设
numQnAnswered
是0
,你从第numQnAnswered
位的Question
对象得到答案,对吗正如你的代码所说。 请注意这里:
但现在的问题是,答案是通过点击按钮验证的,我想你已经忘记了第一个问题是手动设置的&;在检查答案之前,您已经增加了
numQnAnswered
变量,因此您的问题比答案落后一步。希望它有意义验证当前问题后,只需减少
numQnAnswered
变量