微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当光标位于 Kotlin 的 EditText 中时,如何检测回按?

如何解决当光标位于 Kotlin 的 EditText 中时,如何检测回按?

当光标位于 EditText 中时,我需要检测回按。

用户按回时,它隐藏软键盘。当软键盘隐藏时,我需要做一些其他的功能

解决方法

您可以通过创建自定义 EditText 并覆盖 onKeyPreIme 方法来实现,如下所示:

package com.fi.stackoverflow

import android.content.Context
import android.util.AttributeSet
import android.view.KeyEvent
import android.widget.Toast
import androidx.appcompat.widget.AppCompatEditText

class CustomEditText : AppCompatEditText {
    constructor(context: Context) : super(context) {}
    constructor(context: Context,attrs: AttributeSet?) : super(context,attrs) {}
    constructor(context: Context,attrs: AttributeSet?,defStyleAttr: Int) : super(context,attrs,defStyleAttr) {}

    override fun onKeyPreIme(keyCode: Int,event: KeyEvent): Boolean {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // you can do your action Here
            Toast.makeText(context,"Try to hide KeyBoard",Toast.LENGTH_SHORT).show()
            return true // true if you don't want to hide the KeyBoard and False otherwise
        }
        return super.onKeyPreIme(keyCode,event)
    }
}

并在您的 xml 文件中使用它,如下所示(不要忘记更改您的包名称)

<com.fi.stackoverflow.CustomEditText
            android:id="@+id/inputEditor"
            android:layout_width="150dp"
            android:layout_height="60dp"/>

这在我的活动中

   val editText = findViewById<CustomEditText>(R.id.inputEditor);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。