【问题标题】:How do I replace comma with dot in EditText in case of Portuguese如果是葡萄牙语,如何在 EditText 中用点替换逗号
【发布时间】:2020-04-05 20:02:55
【问题描述】:

EditText (numberDecimal) 中的验证适用于英语。我的意思是,小数点分隔符符合预期。

如果是葡萄牙语,我正在尝试用逗号替换点。

我尝试了一些解决方案,但这些解决方案允许在我期望行为为点的地方使用多个逗号。

这是我尝试过的,但它允许在文本更改后包含多个逗号:

if(device lang is portoguese){

edittext.keyListener = DigitsKeyListener.getInstance("0123456789,")

}

【问题讨论】:

  • 你有没有试过这个stackoverflow.com/questions/1234510/…
  • 是的,但逗号应该只有一次而不是多次
  • 你可以用空字符串替换所有逗号,除了第一个位置/最后一个 .. 或者存储 loc 的索引然后再次插入它

标签: java android kotlin android-edittext textwatcher


【解决方案1】:

尝试使用语言环境。 获取用户的语言环境实例并基于如下语言环境:

  public static String formatNumber(double number, Locale locale) {
        NumberFormat formatter = DecimalFormat.getInstance(locale);
        formatter.setRoundingMode(RoundingMode.HALF_UP);
        formatter.setMaximumFractionDigits(MAXIMUM_FRACTION_DIGITS);
        formatter.setMinimumFractionDigits(MINIMUM_FRACTION_DIGITS);
        if (locale == null || formatter == null) {
            return "";
        }

        return format(number);
    }

现在,调用 formateNumber() 方法并在您的编辑文本中进行设置。

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2015-09-02
    • 2013-10-11
    • 1970-01-01
    相关资源
    最近更新 更多