【问题标题】:Soft keyboard with comma instead of dot for decimal separator in android在android中用逗号而不是点作为小数分隔符的软键盘
【发布时间】:2012-09-28 14:37:25
【问题描述】:

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

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

【问题讨论】:

标签: android


【解决方案1】:

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

通过 XML:

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

以编程方式:

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

这样Android系统将显示数字的键盘并允许输入逗号。希望对你有帮助:)

【讨论】:

  • 谢谢。通过以编程方式代码正在工作。
【解决方案2】:

不能不显示'.'在软键盘中,无需创建自己的。 我找到的解决方案是:

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

      android:inputType="numberDecimal"
      

      这使您可以输入“。”

      【讨论】:

        猜你喜欢
        • 2012-06-16
        • 2015-10-15
        • 2020-06-01
        • 1970-01-01
        • 2020-04-07
        • 2017-09-30
        • 2015-01-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多