#android #android-edittext #textwatcher #android-textwatcher
Вопрос:
Я работаю EditText
, где я отображения предварительное заполнение кода страны в начале допустим » 971″, я хочу, что если пользователь пытается щелкнуть и отредактировать в EditText
, он не должен изменить или удалить » 971″ и могут только быть в состоянии поставить число после того, как » 971 123445579″, а если пытаться удалить номер нажмите » 971″ необходимо удалить.
Мой код приведен ниже, пожалуйста, объясните мне, как я могу этого достичь. Спасибо
private fun setupTextChangeListener() {
edit_text.textWatcherListener = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
setDatePickerIconOnDemand()
}
override fun afterTextChanged(s: Editable?) {
}
}
}
// В этом методе я помещаю Start Drawable в редактируемый текст:
private fun setDatePickerIconOnDemand() {
edit_text.setDrawableStart(context.drawable(R.drawable.ic_earh_arrow_down_default))
edit_text.setDrawable()
}
Ответ №1:
Вы можете добавить следующие строки кода при onTextChanged
обратном вызове
if (edit_text.length() < 5 || !edit_text.text!!.startsWith(" 971 ")) {
edit_text.setText(" 971 ")
edit_text.setSelection(edit_text.length())
}
Что он будет делать, так это: Он проверит «Изменено», если ваш текущий текст в редактируемом тексте является только кодом вашей страны, установите код страны в редактируемом тексте и переместите курсор в конце.
Комментарии:
1. Очень признателен за вашу помощь.