SOLID - принцип разделения интерфейса - PullRequest
0 голосов
/ 25 июня 2019

Мне интересно, как реализовать принцип разделения интерфейса из SOLID для TextWatcher.

Более конкретно: Как удалить ненужные функции:

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) {

        }
    });

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Создайте класс NewClass, который наследуется от MyTextWatcher и

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());
    }

    });
0 голосов
/ 25 июня 2019

Вы можете создать свой собственный класс 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());
        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...