如何确保Android中的数字十进制键盘?
我有一个需要无符号十进制输入的EditText 如果我使用:如何确保Android中的数字十进制键盘?,android,keyboard,Android,Keyboard,我有一个需要无符号十进制输入的EditText 如果我使用: setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); setKeyListener(NumericDigitsKeyListener.getInstance(false, true)); 然后它在美国很好用,但是我的欧洲客户不能使用它,因为它似乎不允许逗号作为小数点 另一方面,如果我使用: setInputType(InputT
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()
有什么特别的原因吗?好了,只需setInputType()
就足够了。以下是我正在努力解决的Android bug:@jadkik94,正如他所说,在某些设备上,软键盘出现时没有所需的字符。因此,如果用户有这样的设备,他们根本不可能在自己的语言环境中输入十进制数字。