Как написать функции расширения в Котлин?

Я просто хочу преобразовать свою нормальную функцию в функцию расширения в Котлине.

Вот моя функция,

fun hideKeyboard(activity: Activity) { if (activity != null) { activity.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_SATE_HIDDEN) val view: View = activity.currentFocus if (true) run { val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) } } } 

Вы даже можете сделать это с помощью автоматического рефакторинга, предоставляемого IDE: поместите курсор на параметр, который вы хотите преобразовать в приемник, нажмите Alt + Enter и выберите « Преобразовать параметр в приемник» .

Результат:

 fun Activity.hideKeyboard() { if (this != null) { // Note: this check is redundant, since the type is not-null window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_SATE_HIDDEN) val view: View = currentFocus if (true) run { val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) } } } 
Intereting Posts
Как получить массив строк ResultSet? Нельзя издеваться над финальным классом Kotlin, используя Mockito 2 Можно ли использовать Котлин в Граале? Когда можно опустить возвращаемый тип в Котлин Kotlin переопределяет забаву с подтипом Kotlin: Как я могу избежать дублирования кода в конструкторах? Универсальный расширяемый класс AND реализует интерфейс в Kotlin Gradle kotlin-spring плагин не открывает весенние классы Разбор JSON с использованием Klaxon с doAsync от Anko не выполняется Могу ли я использовать имя лямбда в качестве параметра, переданного «вне круглых скобок»? У вас может быть пустой конструктор или конструктор, параметры которого соответствуют полям В Kotlin, как вы объявляете класс данных с нулевыми параметрами конструктора? Синтаксис функции Kotlin Неопределенность разрешения перегрузки по числу лямбда-параметров Как установить свойство lateinit Kotlin для null