#java #android
#java #Android
Вопрос:
Функция «goClicked» — это функция onClick для кнопки «Go», но она не выполняется, когда я нажимаю на кнопку «Go» (я могу сказать это, потому что всплывающее окно не отображается), пока я не прокомментирую цикл while в функции «goClicked». Я вставляю код только для двух функций «goClicked» и «countdown», потому что это единственные функции, которые изменяют переменную «counterRunning».
public void goClicked(View view) {
afterGoPressed();
countDown();
correctCount = 0;
totalCount = 0;
TextView time = (TextView) findViewById(R.id.time);
while (counterRunning) {
int sum = generateQuestion();
pickOption = generateOptions(sum);
}
}
public void countDown() {
counterRunning = true;
final TextView time = (TextView) findViewById(R.id.time);
final Button tryAgain = (Button) findViewById(R.id.tryAgain);
final TextView result = (TextView) findViewById(R.id.result);
final TextView score = (TextView) findViewById(R.id.score);
int secondsLeft = 30;
time.setText(secondsLeft "");
CountDownTimer countDownTimer = new CountDownTimer(30000,1000) {
@Override
public void onTick(long millisUntilFinished) {
time.setText(millisUntilFinished/1000 "");
}
@Override
public void onFinish() {
tryAgain.setVisibility(View.VISIBLE);
result.setText("Your score: " score.getText());
result.setVisibility(View.VISIBLE);
counterRunning = false;
}
}.start();
}
Ответ №1:
Это потому, что вы используете бесконечный цикл со следующим кодом:
while (counterRunning) {
int sum = generateQuestion();
pickOption = generateOptions(sum);
}
код будет блокировать все остальные инструкции, пока он не найдет, что counterRunning
изменено на false
внутри блока while. Но этого так и не произошло. Отсюда бесконечный цикл.
Комментарии:
1. итак, как это преодолеть?