Рубрики
Без рубрики

Проверка формы TextInputLayout с использованием привязки данных в Android

Несколько дней назад я работал над проектом, в котором мне нужно было реализовать проверку формы в textInputLayo… С тегами android, java, kotlin, программирование.

Несколько дней назад я работал над проектом, в котором мне пришлось реализовать проверку формы в TextInputLayout и ввод текста EditText с использованием привязки данных. К сожалению, для этого недостаточно документации.

Наконец, я добился того, чего хотел, с помощью некоторых исследований и экспериментов. Это то, чего я хотел достичь:

Итак, я знаю, что есть много разработчиков, которые хотят таких же действий и удобного поведения в формах.

Давайте начнем.

Что Мы Собираемся Использовать?

  • Котлин
  • Привязка данных
  • Библиотека материалов

Я собираюсь разбить весь проект на этапы, чтобы вам было легко понять.

Настройте начальный проект и включите привязку данных из build.gradle(:app) , добавив эту строку под тегом android{}:

dataBinding{
    enabled true
}

Чтобы использовать TextInputLayout и ввод текста EditText , вам необходимо включить поддержку материалов для Android, добавив эту зависимость в build.gradle(:app) :

implementation 'com.google.android.material:material:1.2.1'

Давайте сделаем макет нашей формы. Я упрощаю это, потому что моя цель – определить основную функциональную часть этой функции, а не разрабатывать макет.

Дорожная карта для того, чтобы стать успешным разработчиком Android

Я сделал этот простой макет:

Вот activity_main.xml :

Наш макет готов. Давайте теперь займемся кодированием.

Если вы посмотрите на GIF финального приложения (ранее в статье), вы увидите, как ошибки отображаются и скрываются соответственно по мере выполнения условий.

Это потому, что я связал каждое текстовое поле с помощью Text Watcher , который непрерывно вызывается, когда пользователь вводит что-то в поле.

Здесь я создал класс внутри MainActivity.kt, который наследуется от TextWatcher :

Не беспокойтесь о view , который передается в конструкторе класса. Я определю это позже.

Вот основная часть. В каждом текстовом поле есть некоторые условия, которые должны быть выполнены перед отправкой формы. Итак, код для каждого условия текстового поля выглядит следующим образом:

Теперь пришло время связать каждое текстовое поле с классом text Watcher , который мы создали ранее:

Но как бы TextFieldValidation знаете, какое текстовое поле привязать? Прокрутите вверх и посмотрите на комментарий, который я упомянул внутри метода Проверка текстового поля :

// checking ids of each text field and applying functions accordingly.

Обратите внимание, что я передаю представление внутри конструктора Проверки текстового поля, класса, который отвечает за разделение каждого текстового поля и применение каждого из описанных выше методов следующим образом:

Ваш окончательный MainActivity.kt будет выглядеть следующим образом:

Вы можете скачать полный исходный код для этого проекта ниже:

Скачать Код

Я надеюсь, вы узнали что-то новое. Следите за обновлениями для получения новых статей, подобных этой. Счастливого кодирования!

Оригинал: “https://dev.to/mustufa786/textinputlayout-form-validation-using-data-binding-in-android-8gf”