我有一个屏幕,我希望用户只在文本字段中输入数字。我已强制在Android中打开数字键盘,我正在根据其ascii值检测数字。
我正在考虑不要使用KeyCode.NUMBER_PAD_X来检测数字键盘按键,因为这只是API 11及以上的功能,我寻求与类似功能的更高兼容性。同样,检测特殊字符,如()+ - /#,.是API 11及更高版本的内置功能。</ p>
在Android 3.0 / API 11以下的某些Android手机上,数字键盘/手机垫上还有特殊字符,API根本不会忽略。在G2上,只忽略一些特殊字符,但它允许将()+ - /#输入到EditText字段,我的字符捕获器不会注意到这些输入,即使它们超出了该条件的范围,并且我不能使用API 11级KeyCodes来明确检测它们
有关如何检测它们的任何解决方案?
用户可以输入它们并且它们出现在文本字段中是有问题的,但是我的代码都没有检测到它们,也没有在调试器中注册。它与我的其他错误处理条件相混淆,这些条件当前检查字符串有多长,用户可以用这些字符溢出字符串
答案 0 :(得分:2)
您可以在EditText上使用android:digits来限制视图将接受的值。 例如:
android:digits="0123456789"
只会接受数字。键盘仍然包含其他键,但实际上只接受您允许的键。