我想知道如何在TextWatcher上实现SOLID中的接口隔离原则。
更具体地说:如何删除不需要的函数:
beforeTextChanged()、afterTextChanged()
因为我只需要:
onTextChanged()
passwordinput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
presenter.validateCredentials(emailinput.getText().toString(), passwordinput.getText().toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});发布于 2019-06-25 19:03:49
创建一个从MyTextWatcher继承的类NewClass,并
passwordinput.addTextChangedListener(new New Class() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
presenter.validateCredentials(emailinput.getText().toString(), passwordinput.getText().toString());
}
});发布于 2019-06-25 18:59:18
您可以通过实现TextWatcher来创建自己的TextWatcher类,并保留默认实现为空。然后,在您的匿名实现中,只覆盖onTextChanged()。
class MyTextWatcher implements TextWatcher {
@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) {
}
}用法:
passwordinput.addTextChangedListener(new MyTextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
presenter.validateCredentials(emailinput.getText().toString(), passwordinput.getText().toString());
}
});https://stackoverflow.com/questions/56752388
复制相似问题