1

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

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

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

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

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

4

1 回答 1

2

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

android:digits="0123456789"

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

于 2011-03-27T01:12:32.093 回答