Kotlin Cast EditText,TextView to View

时间:2018-02-15 07:34:44

标签: java android kotlin

我在kotlin中有一个静态方法来隐藏软键盘,如果我通过EditText,TextView作为方法的第二个参数,它在java中工作。

但是在kotlin中它会出错,

错误:(56,71)类型不匹配:推断类型是EditText?但预计会看到

我试图在功能中将View更改为EditText,但它不适用于TextView

还尝试将View更改为Any,但applicationWindowToken会出错。

这是应用程序中的常见功能。

companion object {
        fun hideSoftKeyboard(activity: Activity, view: View) {
            val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.hideSoftInputFromWindow(view.applicationWindowToken, 0)
        }
    }

1 个答案:

答案 0 :(得分:2)

尝试将代码View更改为View?

companion object {
        fun hideSoftKeyboard(activity: Activity, view: View?) {
            view?.let {
                 val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.hideSoftInputFromWindow(it.applicationWindowToken, 0)
            }
        }
    }