Es wurde stört mich, dass für alle meine EditText Felder ein Zuhörer Implementierung erforderlich mich hässlich, ausführliche Code zu haben, so schrieb ich die unten Klasse. Kann nützlich sein, wenn jemand darüber stolpert.
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);
}
Jetzt implementieren ein Listener ist ein bisschen sauberer.
editText.addTextChangedListener(new TextChangedListener<EditText>(editText) {
@Override
public void onTextChanged(EditText target, Editable s) {
//Do stuff
}
});
Was, wie oft es feuert, könnte man vielleicht einen Scheck implementieren ihren gewünschten Code in //Do stuff
nach einem einem
versuchen, den Fokus Zuhörer hinzuzufügen gegeben auszuführen, wenn der editText den Fokus nehmen Das bedeutet, dass der Benutzer mit der Bearbeitung begonnen hat. Wenn EditText den Fokus verliert, bedeutet dies, dass die Bearbeitung abgeschlossen ist – Houcine
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang