Kotlin - если оператор не работает должным образом - PullRequest
1 голос
/ 16 февраля 2020

У меня есть очень простой код:

    var i = 1

    if(i  < 5)
     button.setOnClickListener{
        i++
     }

, но когда я равен 5, он все равно входит в if и увеличивается, и я понятия не имею, почему он это делает.

1 Ответ

4 голосов
/ 16 февраля 2020

Когда i меньше 5, этот код:

if(i  < 5)
 button.setOnClickListener{
    i++
 }

устанавливает слушателя на button. Если позднее i изменит свое значение на что-то >=5 , прослушиватель все еще будет действительным , поэтому каждый раз, когда вы нажимаете кнопку i, будет увеличиваться. Поэтому, если вы хотите отменить слушателя, вы можете сделать:

if (i >= 5) button.setOnClickListener(null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...