我正在为数学测验应用编写代码,该应用应该使用随机数提出加法问题。这部分有效,问题是当我使用循环时。循环跳到最后,当我使用调试器时,我看到onclick方法直到最后一次迭代才运行,因为从不显示第一个问题,也没有输入任何内容。我尝试将循环放在不同的位置并使用不同的循环。有趣的是,我什至使用了do循环,该循环应该先询问第一个问题,然后再循环,但这始终是最后一个显示的问题。
这是主要代码
public void generateAdditionQuiz() {
setContentView(R.layout.quiz);
TextView text_view_question = (TextView) findViewById(R.id.text_view_question);
TextView text_view_feedback = (TextView) findViewById(R.id.score);
do{
final String question = addition();
text_view_question.setText(""+question);
text_view_feedback.setText("score " + questionsAnswdCrrct + "question # " + questionsMAX);
Log.i("My Acy", "questions " + questionsMAX);
Button buttonSend = (Button) findViewById(R.id.button_send);
buttonSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText answerInput = (EditText) findViewById(R.id.answer_field);
// parse input string to int
int answer = Integer.parseInt(answerInput.getText().toString());
String[] arrayQuestion = question.split("\\+");
// parse string array to int array
int[] parsedQuestion = new int[arrayQuestion.length];
int questionSum = 0;
for (int i = 0; i < arrayQuestion.length; i++) {
parsedQuestion[i] = Integer.parseInt(arrayQuestion[i]);
questionSum += parsedQuestion[i];
}
if (answer == questionSum) {
questionsAnswdCrrct++;
} else {
//text_view_feedback.setText("Incorrect");
}
}
});questionsMAX++;
}while(questionsMAX<=2);
}