функция вызова kotlin с представлением андроида - PullRequest
0 голосов
/ 11 ноября 2018

Мы пытаемся понять, как вызывать функцию в Котлине.

Функция выглядит следующим образом

    fun onSIMPLE(view: View){
    val snack = Snackbar.make(view,"This is a simple Snackbar", Snackbar.LENGTH_LONG)
    snack.show()
}

И звонок сделан таким образом

btnSB2.setOnClickListener {onSIMPLE(it)}

Что мы не понимаем, так это откуда известно, что ключевое слово "it" ?
Кто когда-либо создавал ключевое слово "оно", никогда не искал в Интернете

Мы включили каждое разумное ключевое слово в (), чтобы решить эту проблему.
ДА мы тоже посмотрели документацию
Есть ли лучший способ построить функцию или сделать вызов?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

setOnClickListener ожидает лямбду в качестве параметра, используя Java-подобный подход, это должно выглядеть так:

btnSB2.setOnClickListener({
    v:View -> onSIMPLE(it)
})

Кроме того, если лямбда является последним параметром для данной функции, ее можно указать вне скобок, что будет выглядеть следующим образом:

btnSB2.setOnClickListener {
    v:View -> onSIMPLE(it)
}

Обычно лямбда-функции имеют один параметр. Для этих функций Kotlin поддерживает ключевое слово it. Зная это, код становится:

btnSB2.setOnClickListener {
    onSIMPLE(it)
}
0 голосов
/ 11 ноября 2018

it - неявное имя для лямбды с одним параметром. Вы можете переопределить, как вы хотите, например:

btnSB2.setOnClickListener { view -> onSIMPLE(view)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...