如何解决当光标位于 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 举报,一经查实,本站将立刻删除。