そのため、Android用のTextWatcherを実装しようとして、EditTextウィジェットのテキストを通貨形式の文字列に変換したいので、TextChangedListenerが複数回呼び出されたり、無限ループに入ったりするといういくつかの問題が発生しました。
これを回避するために私がしたことは、独自のカスタム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);
}
}
だから私の質問は、これを行うためのより良い方法はありますか?編集が行われる場所と結果のフォーマットされた文字列を保持するための1つのEditTextウィジェットが必要です。
また、このようなTextChangedListenerを削除してから追加することに関して、実際に他の問題がありますか?
前もって感謝します