2

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

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

4

4 回答 4

13

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

通过 XML:

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

以编程方式:

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

这样安卓系统就会显示数字键盘并允许输入逗号。希望能帮助到你 :)

于 2013-05-27T11:54:52.420 回答
3

不能不显示“。” 在软键盘中,无需创建自己的。我发现的解决方案是:

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

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

于 2016-10-13T12:15:35.683 回答
2

我通过扩展NumberKeyListener接受','和'。'解决了这个问题,并覆盖:

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

此外,我在 EditText 上设置了一个 TextWatcher,它替换了所有的 '.' 用 ',' 在afterTextChanged().

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

于 2012-10-25T11:45:15.753 回答
-3

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

android:inputType="numberDecimal"

这使您可以输入“。”

于 2016-07-14T09:22:06.250 回答