Итак, я пытался реализовать TextWatcher для Android и столкнулся с несколькими проблемами с 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, подобного этому?
Заранее спасибо
]