java如何在实时格式化Android EditText时避免堆栈溢出?
在我的Android应用程序中,我有一个EditText,用户可以在其中输入金额。当EditText失去焦点时,我使用NumberFormat将输入的金额格式化为货币区域设置,当用户单击EditText时,它再次获取原始字符串并输入(code here)
这很好,但当用户输入金额时,它看起来并不漂亮。理想情况下,我希望EditText还显示以下内容(按重要性顺序):
- 金额左侧的货币符号李>
- 本地化的数千个分离器李>
- 仅当用户输入时才使用小数标记李>
然而,我遇到的第一个问题是,当我使用TextWatcher并实现下面的代码片段时,我会得到一个(多么适合这个网站)StackOverflowException,因为它会监视自己的更改
@Override
public void afterTextChanged(Editable s) {
amount_field.setText("€" + s.toString());
}
所以我的问题是:如何实时格式化EditText?欢迎所有提示
# 1 楼答案
尝试以以下方式在OnFocusChangeListener上使用:
尝试这样做: