Помогите! Почему-то создается бесконечный цикл
Есть код:
package com.dmitry.searchgame.searchgametest
import android.annotation.SuppressLint
import android.content.Context
import android.widget.Button
import android.widget.TextView
class MainClass(
private val buttonNext: Button,
var questionField: TextView,
var answerField1: Button,
var answerField2: Button,
var answerField3: Button,
private val questions: Array<String>,
private val answers: Array<Array<String>>,
private val context: Context
)
{
var counter: Int = 14
@SuppressLint("SetTextI18n")
fun main() {
do {
questionField.text = questions[counter]
answerField1.text = answers[counter][0]
answerField2.text = answers[counter][1]
answerField3.text = answers[counter][2]
answerField1.isClickable = true
answerField2.isClickable = true
answerField3.isClickable = true
answerField1.setOnClickListener {
questionField.text = "Ответ верный."
answerField1.text = ""
answerField2.text = ""
answerField3.text = ""
answerField1.isClickable = false
answerField2.isClickable = false
answerField3.isClickable = false
}
answerField2.setOnClickListener {
questionField.text = "Увы, ответ не верный"
answerField1.text = ""
answerField2.text = ""
answerField3.text = ""
answerField1.isClickable = false
answerField2.isClickable = false
answerField3.isClickable = false
}
answerField3.setOnClickListener {
questionField.text = "Увы, ответ не верный"
answerField1.text = ""
answerField2.text = ""
answerField3.text = ""
answerField1.isClickable = false
answerField2.isClickable = false
answerField3.isClickable = false
}
buttonNext.setOnClickListener {
counter--
}
}while (counter != 0)
}
}
в while присутствует оптимальное условие для выхода, но все равно происходит вечный цикл и приложение виснет(просто черный экран) я предпологаю что это из-за:
buttonNext.setOnClickListener {
counter--
}
Если это так, то подскажите чтобы исправить это. Заранее спасибо!
Ответы (1 шт):
Автор решения: woesss
→ Ссылка
Потому что переменная counter не изменяется внутри цикла.
Для выхода из вашего цикла нужно нажать 14 раз на кнопку buttonNext.
Вероятно нужно вынести counter-- из блока слушателя кнопки.
Но похоже что цикл здесь вообще не нужен и вместо counter нужно передавать в эту функцию номер следующего вопроса после старта приложения и после каждого ответа.