如何确保 Android 中的数字十进制键盘?

Posted

技术标签:

【中文标题】如何确保 Android 中的数字十进制键盘?【英文标题】:How can I ensure a numeric decimal keyboard in Android? 【发布时间】: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)上,出现的软键盘是严格的数字(没有逗号或句点)。

如何强制使用数字键盘访问适合区域设置的小数分隔符?

谢谢

【问题讨论】:

你是这个意思? ***.com/questions/4645119/… 不,恐怕;这正是我上面的第二个解决方案,但如果我这样做,它不适用于所有设备(有些设备无法插入小数点分隔符)。 您使用setKeyListener() 有什么特别的原因吗? AFAIK,只需 setInputType() 就足够了。 这是我正在尝试解决的 android 错误:code.google.com/p/android/issues/detail?id=2626 @jadkik94,正如他所说,在某些设备上,软键盘出现时不需要字符。因此,如果用户有这样的设备,则根本不可能在他们的语言环境中输入十进制数字。 【参考方案1】:

一个可能的解决方案/解决方法是提供your own keyboard。计算器应该很容易实现

【讨论】:

以上是关于如何确保 Android 中的数字十进制键盘?的主要内容,如果未能解决你的问题,请参考以下文章

在本机浏览器上输入类型=数字的十进制

我如何确保十进制中有一定数量的数字(尾随零)

输入时如何将文本字段格式设置为十进制?

如何限制文本字段只能输入十进制数字?

Robin 输入掩码:iPhone 显示用于十进制输入的纯数字键盘

从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。