Boolean превращается в int номер 904 в Котлине - PullRequest
0 голосов
/ 15 марта 2019

Я работаю над приложением викторины для своего проекта в университете и пытаюсь сохранить кнопку и логическое значение, в котором указано, верен ли ответ в классе данных, и сохранить все кнопки во временном списке, чтобы я мог добавить слушателя onclick для всех них позже. Но когда я пытаюсь получить доступ к логическому значению, оно просто превращается в число 904. Вот мой код относительно этих кнопок.

val ansBtnList: MutableList<ButtonDataClass> = mutableListOf()
--------------------------------------------------------------
val ans = ButtonDataClass(Button(this), quizToShow.getValue(planets[0]).answers[i].isRight)
--------------------------------------------------------------
ansBtnList.add(ans)
--------------------------------------------------------------
for (i in 0..3) {
        ansBtnList[i].btn.setOnClickListener { Log.d(null, ansBtnList[i].btn.right.toString()) }
    }

Заранее спасибо!

РЕДАКТИРОВАТЬ: ButtonDataClass код:

data class ButtonDataClass (var btn: Button, var right: Boolean)

Ответы [ 3 ]

2 голосов
/ 15 марта 2019

Это не right, что вы думаете. btn это кнопка. Кнопка имеет поле right, которое связано с ее координатой на экране. Вы должны попробовать ansBtnList[i].right.toString() вместо этого.

0 голосов
/ 15 марта 2019

Конечно, вы не получаете доступ к нужному полю.ansBtnList[i].btn.right дает правильное положение вашей кнопки в пикселях.Скорее сделать ansBtnList[i].right

0 голосов
/ 15 марта 2019

btn.right относится к right переменной класса Button, а не к переменной, присутствующей в ButtonDataClass

, замените: ansBtnList[i].btn.setOnClickListener { Log.d(null, ansBtnList[i].btn.right.toString()) }

на: ansBtnList[i].btn.setOnClickListener { Log.d("your_tag_id", ansBtnList[i].right) }

...