android中十进制分隔符用逗号代替圆点的软键盘
我已经阅读了一些关于这个问题的文章,有些没有得到回答,还有一些(从2011年开始)解释了这是一个已知的bugandroid中十进制分隔符用逗号代替圆点的软键盘,android,Android,我已经阅读了一些关于这个问题的文章,有些没有得到回答,还有一些(从2011年开始)解释了这是一个已知的bug 这个问题解决了吗?现在可以用软键盘显示文化信息吗?我想显示一个十进制键盘,显示一个“,”而不是十进制分隔符的“点”。我通过扩展NumberKeyListener来接受“,”和“.”,解决了这个问题, 并推翻: @Override public int getInputType() { return InputType.TYPE_CLASS_NUMBER | I
这个问题解决了吗?现在可以用软键盘显示文化信息吗?我想显示一个十进制键盘,显示一个“,”而不是十进制分隔符的“点”。我通过扩展
NumberKeyListener
来接受“,”和“.”,解决了这个问题,
并推翻:
@Override
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER
| InputType.TYPE_NUMBER_FLAG_DECIMAL
| InputType.TYPE_NUMBER_FLAG_SIGNED;
}
此外,我在EditText上设置了一个TextWatcher,它将PostTextChanged()
中的所有“.”替换为“.”
但我无法在软键盘上显示逗号。您可以使用以下解决方法将逗号作为有效输入:- 通过XML:
<EditText
android:inputType="number"
android:digits="0123456789.," />
EditText input = new EditText(THE_CONTEXT);
input.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));
这样,Android系统将显示数字键盘,并允许输入逗号。希望有帮助:)在android名称空间中,您可以使用:
android:inputType="numberDecimal"
这使您能够输入“.”如果不创建自己的软键盘,则无法在软键盘中不显示“.”。 我找到的解决方案是:
<EditText
android:inputType="numberDecimal"
android:digits="0123456789," />
这样,当您按下软键盘中的“.”时,什么也不会发生;只允许使用数字和逗号谢谢。通过编程,代码正在工作。我的修复方法如下:[请参见此处]()DigitsKeyListener现在接受locale,这使得软输入键盘根据locale接受“,”或“.”作为十进制分隔符。