【发布时间】:2011-07-18 06:21:25
【问题描述】:
所以我一直在尝试为 Android 实现 TextWatcher,但在多次调用 TextChangedListener 或进入无限循环时遇到了一些问题,因为我想将 EditText 小部件中的文本转换为货币格式的字符串.
解决此问题的方法是创建自己的自定义 TextWatcher,然后在 afterTextChanged 事件中执行以下操作
public class CurrencyTextWatcher implements TextWatcher {
private EditText et;
public CurrencyTextWatcher(EditText editText) {
et = editText;
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
et.removeTextChangedListener(this);
et.setText(myCurrencyString);
et.addTextChangedListener(this);
}
}
所以我的问题是,有没有更好的方法呢?我想要一个 EditText 小部件来保存编辑所在的位置以及生成的格式化字符串。
实际上还有其他关于删除然后添加这样的 TextChangedListener 的问题吗?
提前致谢
【问题讨论】:
标签: android textwatcher