Есть MainActivity, есть Presenter, есть отдельный класс Util который наследуется от TextWatcher. Задача в том, чтобы назначить этот TextWatcher на editField.
Сейчас MainActivity
mainPresenterImpl = new MainPresenterImpl();
mainPresenterImpl.translationInputFieldListener(translatedTextInput);
Presenter
@Override
public void translationInputFieldListener(EditText translatedTextInput) {
Log.v("TAG", "In presenter");
translatedTextInput.addTextChangedListener(textWatcherUtil = new TextWatcherUtil());
}
Util
public class TextWatcherUtil implements TextWatcher{
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
}
Задача, назначить в методе afterTextChanged. Там уже дальше будет выполнятся метод сохранения значения в SharedPreferences.
P.S. Если мой вопрос составлен не корректно, то если минусуете, пожалуйста отпишите в комментариях, что сделанно не верно, чтобы ошибок не повторялось. Спасибо
textWatcher
это из категории дата биндинга в сторону MVVM
. В случае паттерна MVP
TextWatcher'a
держите во вьюхе и в его колбеках вызываете презентер. и вся логика уже в презентере. т.е. будет вот так:
public class TextWatcherUtil implements TextWatcher{
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
presenter.beforeTextChanged(...);
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
presenter.onTextChanged(...);
}
@Override
public void afterTextChanged(Editable editable) {
presenter.afterTextChanged(...);
}
Т.е. в вашем конкретном случае, вы в коллбеке afterTextChanged()
вызываете presenter.onTextChanged()
и в этом методе презентер вызывает свои Private
методы работы с префами
А если у вас идет работа с префами, что можно считать репозиторием, то можете прикрутить к MVP
еще и Interactor
если простым языком, это класс между презнтером и моделью, который преобразует данные (+логику работы с ними) из модели в презентер и обратно в необходимом виде
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Как я уже понял, спиннер обновить легко и просто не получитсяУ меня при включении в него загружается вот этот пустой List
У меня задача настороить logbackxml так, чтобы каждый день создавался новый файл log_%d{yyyy-MM-dd}
В applicationproperties добавлены поля