Kotlin: Попытка добавить следующую функцию в глобальный общий файл, который будет использоваться в нескольких действиях, но по-прежнему получать разные ошибки - PullRequest
0 голосов
/ 13 апреля 2020

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

    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    if (currentFocus != null) {
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(currentFocus!!.windowToken, 0)
    }
    return super.dispatchTouchEvent(ev)
}

эта функция используется для свертывания клавиатуры, когда я щелкаю вдали от текстовое поле EditText.

Ошибки: неразрешенная ссылка: currentFocus

Ошибки: неразрешенная ссылка: getSystemService

Ошибки: неразрешенная ссылка: dispatchTouchEvent

1 Ответ

2 голосов
/ 13 апреля 2020

Вы можете использовать эту функцию в общем файле для свертывания клавиатуры.

 fun hideKeyboard(context: Context) {
                val inputManager =
                    context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                val v = (context as Activity).currentFocus ?: return
                inputManager.hideSoftInputFromWindow(v.windowToken, 0)
            }

В переопределении активности dispatchTouchEvent () функция и вызов функции hideKeyboard (), например:

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
if (currentFocus != null) {
hideKeyboard(this)
}
return super.dispatchTouchEvent(ev)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...