Intereting Posts
Сравните класс данных в Kotlin без ID Почему createView никогда не звонил? Строительство многомодульного проекта градиента в Travis CI Класс данных Котлина с производными свойствами android.view.InflateException: двоичная строка XML-файла # 0: ошибка раздувания класса android.support.design.widget.TextInputEditText Kotlin – Расходы на более высокие порядки? Класс тестирования детей Kotlin запускает все родительские тесты Что делать в Espresso, когда recyclerView сам возвращает AmbiguousViewMatcherException? Как хранить данные типа reified в полях экземпляров в Kotlin? Kotlin: Как можно получить доступ к функциям расширения внутри одного типа извне? Текстовый объект объекта Kotlin, реализующий дикий кардочесальный, саморегуляторный общий интерфейс Локальная система управления пакетами Java в стиле PIPON PIP? Как перевести класс Java в класс данных Kotlin При использовании setcontentview в BottomsheetDialog возникает ошибка, например: «ни одна из следующих функций не может быть вызвана с предоставленными аргументами» ': app: kaptDebugKotlin' ошибка в Android-студии 3 стабильной версии с номером 1 (RC)

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

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

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

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) } } }