Возможно, это не так сложно для вас, но мне нужна помощь. У меня есть и editText, который показывает код длиной в 6 цифр. например «292000», «123000» и т. Д.удалить фиксированное количество цифр
У меня есть эта информация в editText Я бы хотел, чтобы пользователь мог удалить последние 2 цифры, чтобы поместить свой номер (они могут только изменить последние две цифры). например "292020" "123001".
Я использую textwatchers, но я не могу использовать setText внутри него, потому что я получу ошибку stackoverflow. Любая помощь будет так оценена.
codArt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(codArt.getSelectionStart() < 5) {
codArt.setText(charSequence);
codArt.setSelection(5);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
Большое спасибо, что решение идеально подходит для меня. Я полагаю, что вызов removeTextChangedListener заключается в том, чтобы избежать рекурсии, в которой я получаю исключение stackoverflow, не так ли ?. – acostela
Да. Чтобы избежать рекурсивного вызова методов слушателя, я удалил слушателя перед вызовом setText(). – Chandrakanth