软键盘用逗号代替dot中的小数点分隔符在android中

时间:2012-10-08 10:45:06

标签: android

我一直在阅读有关此问题的一些主题,有些未得到回答,其他人(从2011年开始)解释了这是一个已知错误。

这已经解决了吗?现在可以显示带有文化信息的软键盘吗?我想显示一个十进制键盘,显示“,”而不是小数点分隔符的“点”。

4 个答案:

答案 0 :(得分:10)

您可以使用以下解决方法将逗号作为有效输入包括在内: -

通过XML:

<EditText
    android:inputType="number"
    android:digits="0123456789.," />

<强>编程:

EditText input = new EditText(THE_CONTEXT);
input.setKeyListener(DigitsKeyListener.getInstance("0123456789.,"));

这样Android系统就会显示数字&#39;键盘并允许输入逗号。希望它有所帮助:)

答案 1 :(得分:2)

我通过将NumberKeyListener扩展为接受','和'。'来解决这个问题, 和overrode:

@Override
public int getInputType() {
   return InputType.TYPE_CLASS_NUMBER 
          | InputType.TYPE_NUMBER_FLAG_DECIMAL 
          | InputType.TYPE_NUMBER_FLAG_SIGNED;
}

此外,我在EditText上设置了一个TextWatcher,它取代了所有'。'在afterTextChanged()中使用','。

但我无法在软键盘上显示逗号。

答案 2 :(得分:2)

不可能不显示'。'在软键盘中没有创建自己的键盘。 我找到的解决方案是:

<EditText
    android:inputType="numberDecimal"
    android:digits="0123456789," />

这样当你按下“。”在软键盘中没有任何反应;只允许使用数字和逗号

答案 3 :(得分:-1)

在android命名空间中,您可以使用:

android:inputType="numberDecimal"

这使您可以输入&#34;。&#34;