EditText 的货币格式

Currency format for EditText

我正在使用此 library 在用户输入时格式化文本。我有一个 EditText 用户输入钱的地方。我想作为用户类型实现以下行为:

用户输入 -> 结果 EditText

1 -> 1 美元

10 -> 10 美元

100 -> 100 美元

1000 -> 1000 美元

然而,我得到的是:

1 -> 1 美元

10 -> 10 美元

100 -> 100 美元

1000 -> 100 0 美元

  val mask = MaskedTextChangedListener(
            "[000] [000] [000] dollars",
            false,
            etAmount,
            object : TextWatcher {
                override fun afterTextChanged(s: Editable?) { }

                override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}

                override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
            },
            null
        )

 etAmount.addTextChangedListener(mask)

关于如何实现这一点的文档不是很清楚,我被困在这个问题上。任何建议将不胜感激。

这里是图书馆作者。

我们有一个 wiki page 描述从右到左对齐的文本的遮罩;此页面包含一个类似于您的案例。

简而言之,尝试像这样配置您的侦听器:

mask.rightToLeft = true