EditTextからKeyEvent(KEYCODEL,KEYCODE ENDTER)を取得する方法
EditTextは、開発した注釈アプリケーションにタグオフ機能を追加するために、ユーザーのEnterキー入力とDeleteキー入力をキャプチャする必要があります.最初はTextWatcherで調べようとしたが失敗した・・・T^Tの理由は,ユーザがソフトキーボードに鍵を連続的に入力すると,与えられた情報(count,before,after,start)が利用できないためである.そこでonKeyEvent関数の大げさな方法を考えてみましたが、onKeyEventはSoft Keyboardにインクカートリッジです...だから私はグーグルに努力している間に、InputConnectionを利用してKeyEventを捕まえる方法を知りました.
簡単な使用例を覚えておいてください.
簡単な使用例を覚えておいてください.
class MyEditText : AppCompatEditText {
constructor(context: Context) : super(context) {
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
}
override fun onCreateInputConnection(outAttrs: EditorInfo?): InputConnection {
return object : InputConnectionWrapper(super.onCreateInputConnection(outAttrs), true){
override fun sendKeyEvent(event: KeyEvent?): Boolean {
if(event?.action == KeyEvent.ACTION_DOWN){
when(event.keyCode){
KeyEvent.KEYCODE_DEL->{
//catch delete key
}
KeyEvent.KEYCODE_ENTER->{
//catch enter key
}
}
}
return super.sendKeyEvent(event)
}
}
}
}
EditTextを継承してCustom EditTextを作成し、Custom EditTextでonCreateInputConnectionを上書きして終了します!Reference
この問題について(EditTextからKeyEvent(KEYCODEL,KEYCODE ENDTER)を取得する方法), 我々は、より多くの情報をここで見つけました https://velog.io/@luckyhan/EditText에서-KeyEvent-KEYCODEDEL-KEYCODEENDTER-받는-방법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol