Me molestaba que la implementación de un oyente para todos mis campos EditText requiere que yo tenga código feo, verbosa así que escribí la clase a continuación. Puede ser útil para cualquiera que tropiece con esto.
public abstract class TextChangedListener<T> implements TextWatcher {
private T target;
public TextChangedListener(T target) {
this.target = target;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
this.onTextChanged(target, s);
}
public abstract void onTextChanged(T target, Editable s);
}
Ahora implementar un oyente es un poco más limpio.
editText.addTextChangedListener(new TextChangedListener<EditText>(editText) {
@Override
public void onTextChanged(EditText target, Editable s) {
//Do stuff
}
});
En cuanto a la frecuencia con la que los incendios, uno tal vez podría implementar una verificación para ejecutar su código deseado en //Do stuff
después de un determinado intentarlo
añadir al oyente enfoque, cuando el EDITTEXT tomar el foco , eso significa que el usuario ha comenzado a editarlo, y cuando editText pierde el foco, significa que la edición ha finalizado – Houcine
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang