【发布时间】:2012-12-11 02:40:42
【问题描述】:
我有一个需要无符号十进制输入的 EditText。
如果我使用:
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
setKeyListener(NumericDigitsKeyListener.getInstance(false, true));
然后它在美国工作得很好,但我的欧洲客户不能使用它,因为它似乎不允许逗号作为小数点。
另一方面,如果我使用:
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
setKeyListener(DigitsKeyListener.getInstance("01234567890.,"));
然后它在美国和欧洲运行良好,但在某些设备(如 Galaxy S3)上,出现的软键盘是严格的数字(没有逗号或句点)。
如何强制使用数字键盘访问适合区域设置的小数分隔符?
谢谢
【问题讨论】:
-
不,恐怕;这正是我上面的第二个解决方案,但如果我这样做,它不适用于所有设备(有些设备无法插入小数点分隔符)。
-
您使用
setKeyListener()有什么特别的原因吗? AFAIK,只需setInputType()就足够了。 -
这是我正在尝试解决的 Android 错误:code.google.com/p/android/issues/detail?id=2626
-
@jadkik94,正如他所说,在某些设备上,软键盘出现时不需要字符。因此,如果用户有这样的设备,则根本不可能在他们的语言环境中输入十进制数字。