Написал форму для проверки региона по номеру телефона Поставил TextWatcher на форму ввода, он отслеживает значение поля ввода и подставляет маску, вот только если я удаляю значение и пытаюсь ввести номер другого региона то подставляется уже другая маска и вылетает ошибка
java.lang.StackOverflowError at android.text.method.ReplacementTransformationMethod$ReplacementCharSequence.getChars(ReplacementTransformationMethod.java:151)
Происходит это как я понял из-за того что я пытаюсь присвоить EditText'у две маски, вопрос, как мне удалять предыдущую маску и заменять на новую?
editPhone.addTextChangedListener(new 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) {
if(editPhone.getText().toString().equals("+3")){
editPhone.addTextChangedListener(new MaskedWatcher("+38 (###) ###-##-##"));
}
if(editPhone.getText().toString().equals("+7")){
editPhone.addTextChangedListener(new MaskedWatcher("+7 (###) ###-##-##"));
}
if(editPhone.getText().toString().equals("")){
editPhone.setText("+");
editPhone.setSelection(editPhone.getText().length());
}
if(editPhone.getText().toString().equals("+1")){
editPhone.addTextChangedListener(new MaskedWatcher("+1 (###) ###-##-##"));
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
StackOverflowError у вас из-за того что вы в onTextChanged еще раз задаете TextWatcher для editPhone. Вам нужно логику в MaskedWatcher поправить. Чтобы внутри этого MaskedWatcher была проверка на тип маски. и сделать изначально нужно editPhone.addTextChangedListener(new MaskedWatcher()). Покажите код new MaskedWatcher для подробного ответа
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу добавить в приложение возможность вытягивать лайки и дизлайки из указанных видеоВернее я это реализовал парсингом страницы, но данное...
У пользователей слабый интернет, и бывает связь разрываетсяОтправляю файл так
Приложение крашится если его открыть из свернутого состоянияПричем падение бывает не в каждый раз
Использую Spring BootПодкажите как "сказать" приложению для запуска в "dev" или "prodaction" mode