如何检测editText的逗号或点键事件?我尝试使用setOnKeyListener,但setOnKeyListener可以检测数字、删除、完成按钮,但无法检测逗号和点。我想检测逗号和点键按下事件。
我的XML看起来像这样:
<EditText
android:id="@+id/edittext"
android:inputType="numberDecimal|number"
android:digits="1234567890,."
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
我的密码是
binding.edittext.setOnKeyListener { view, i, keyEvent ->
Log.i(TAG,"edittext setOnKeyListener i -> $i keyevent $keyEvent")
false
}
我可以打印每个数字按键事件并删除除逗号和点按键事件之外的按键事件,但我不知道为什么,当我从键盘按下逗号(,)和点(.)键时,setOnKeyListener函数未调用。
1条答案
按热度按时间xfyts7mz1#
根据官方文件:https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/commands
注:使用KeyEvent类和相关API处理键盘事件时,请预期键盘事件仅来自硬件键盘。切勿依赖于接收软输入法(屏幕键盘)上任何键的键事件。
最好使用TextWatcher https://developer.android.com/reference/android/text/TextWatcher手动处理这两个符号。