Помогите! Почему-то создается бесконечный цикл

Есть код:

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 нужно передавать в эту функцию номер следующего вопроса после старта приложения и после каждого ответа.

→ Ссылка