如果是葡萄牙语,如何在 EditText 中用点替换逗号

Posted

技术标签:

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

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

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

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

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

if(device lang is portoguese)

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


【问题讨论】:

你有没有试过这个***.com/questions/1234510/… 是的,但逗号应该只有一次而不是多次 你可以用空字符串替换所有逗号,除了第一个位置/最后一个 .. 或者存储 loc 的索引然后再次插入它 【参考方案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() 方法并在您的编辑文本中进行设置。

【讨论】:

以上是关于如果是葡萄牙语,如何在 EditText 中用点替换逗号的主要内容,如果未能解决你的问题,请参考以下文章

Python PyEnchant 葡萄牙语词典安装

法国葡萄酒分级丨 AOCAOPVdP IGP

如何在 android 小部件 EditText 中添加水印?

如果用户没有输入任何输入,如何在 Android 中的 Edittext 上设置占位符并使用它?

如何在 android EditText 中强制使用英文键盘

如何确定在 EditText 中选择了哪些文本? [复制]