Android 检测括号和特殊字符输入,在 api 11 之前

标签 android events listener android-edittext keycode

我有一个屏幕,我希望用户只在文本字段中输入数字。我已经在 Android 中强制打开数字键盘,并且我正在根据数字的 ascii 值检测数字。

我正在考虑尝试不使用 KeyCode.NUMBER_PAD_X 来检测数字键盘按键,因为这只是 API 11 及更高版本的功能,我寻求与类似功能的更高兼容性。同样,检测特殊字符,如 ( ) + -/# , .是 API 11 及更高版本的内置函数。

在 Android 3.0/API 11 以下的一些 Android 手机上,数字键盘/电话键盘上也有特殊字符,API 根本不会忽略这些字符。在 G2 上,只有一些特殊字符会被忽略,但它允许将 ( ) + -/# 输入到 EditText 字段中,我的角色捕捉器不会注意到这些输入,即使它们超出了该条件的范围,并且我不能使用 API 11 级别的 KeyCodes 来显式检测它们

关于如何检测它们的任何解决方案?

用户可以输入它们并且它们出现在文本字段中是有问题的,但我的代码没有检测到它们,也没有在调试器中注册。它扰乱了我当前检查字符串长度的其他错误处理条件,用户可能会用这些字符溢出字符串

最佳答案

您可以在 EditText 上使用 android:digits 来限制 View 将接受的值。 例如:

android:digits="0123456789"

只接受数字。键盘仍将包含其他键,但实际上只会接受您允许的键。

关于Android 检测括号和特殊字符输入,在 api 11 之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5445833/

相关文章:

android - Kotlin : FirebaseMessigingService is recive the message, 但未显示通知

javascript - 如何在 JavaScript 中订阅 OpenLayers 5.3.0 事件?

python - 当滚动条已设置时更新 WheelEvent 上的 QLineEdit

java - 从 JFrame 调用时,ActionListener 在 JPanel 上执行两次

java - 鼠标监听器和 Action 监听器之间的区别?

android - 滚动时带有 ViewHolder 和部分的 ListView 失败

android - Google Api 客户端有时在 onConnected 中为 NULL

events - 函数式事件驱动编程

android - 如何停止加速度计传感器

java - 工具栏的问题