Kotlin: передать ссылку / указатель на функцию - PullRequest
0 голосов
/ 28 октября 2018

Для разработки под Android я использую Kotlin.Существуют различные кнопки (кнопка A, кнопка B) для вызова одной и той же функции.Разница лишь в том, что одна и та же функция вызывается с разными параметрами (REQUEST_A, REQUEST_B).Следующий код работает нормально:

    fun standardizedFunction(requestCode: Int){ 
    ....}

    buttonA.setOnClickListener { standardizedFunction(REQUEST_A) }
    buttonB.setOnClickListener { standardizedFunction(REQUEST_B) }

Теперь вопрос: есть ли способ сделать его более элегантным?как

   fun standardizedFunction(Object: Pointer, requestCode: Int){ 
      Object.setOnClickListener{
      ....
      }
   }

   standardizedFunction(buttonA,REQUEST_A) 
   standardizedFunction(buttonB,REQUEST_B) 

1 Ответ

0 голосов
/ 28 октября 2018

Вы можете сделать это "лучше", используя метод расширения до View для настройки слушателя:

fun View.standardizedFunction(requestCode: Int) = setOnClickListener {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...