В настоящее время я работаю над игрой, в которой игроки должны решить для X + Y с выбором 3 кнопок (1 из которых является ответом) и кнопкой «Далее» для go до следующего вопроса (путем замены значений компонентов в следующий вопрос). Однако я не могу подсчитать ответы, потому что мой проверенный выбор (кнопка) всегда проверяет значения следующего вопроса
Чтобы дать небольшой контекст,
questionCategories - это ArrayList ArrayList с разными уровнями
например, questionCategories.get (selectedLevel) возвращает ArrayList с различной арифметикой
jumbleOptions заполняет 3 кнопки правильные и неправильные ответы, которые содержатся в вариантах
У меня возникает ситуация, когда при ответе на вопрос 1 показанные значения параметров относятся к вопросу 1, но проверенные значения (в тест) из Вопроса 2.
например,
Qn1: 3 + 5 - A: 2, B: 8, C: 4
Qn2: 8 + 2 - A : 10, B: 11, C: 12
Когда я пытаюсь выполнить Qn1 на B и нажимаю «Далее», чтобы go перейти к следующему вопросу (и проверить правильность), вместо проверки B: 8 моя программа завершает тестирование B: 11 . Я попытался записать полученные значения каждой кнопки и ответа на вопрос, но все они верны, и я не уверен, где я go ошибался.
Фрагмент кода находится в пределах onViewCreated, первый вопрос инициализируется для отображения из-за текста заполнителя в исходном элементе. Извините, если фрагмент кода не имеет особого смысла, пытаясь сделать его коротким, чтобы он (надеюсь) был более читабельным.
// 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);