Mi dava fastidio che l'implementazione di un ascoltatore per tutti i miei campi EditText necessaria me avere brutto, il codice verbose così ho scritto la classe di seguito. Può essere utile a chiunque inciampa su questo.
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);
}
Ora l'implementazione di un listener è un po 'più pulita.
editText.addTextChangedListener(new TextChangedListener<EditText>(editText) {
@Override
public void onTextChanged(EditText target, Editable s) {
//Do stuff
}
});
Per quanto riguarda la frequenza con cui si spara, si potrebbe forse implementare un controllo per eseguire il proprio codice desiderato in //Do stuff
dopo un dato una prova
aggiungere l'ascoltatore messa a fuoco, quando l'EditText distogliere l'attenzione , ciò significa che l'utente ha iniziato a modificarlo e quando editText perde lo stato attivo, significa che la modifica è terminata – Houcine
https://github.com/henrychuangtw/AutoInsertEditText – HenryChuang