Когда использовать BindingAdapter, а когда использовать liveData или наблюдаемое поле в MVVM? - PullRequest
0 голосов
/ 07 января 2019

Я не уверен, как лучше использовать эти шаблоны, например, где лучше всего проверить EditText текст? в действии или ViewModel, используя поле observable или bindingAdapter?

1 Ответ

0 голосов
/ 17 января 2019

Если вы говорите о проверке правильности или неправильности ввода текста, это логика и должна обрабатываться в ViewModel , где можно наблюдать изменения ввода, а затем в зависимости от того, верны они или нет что-то происходит (например, красное подчеркивание или зеленая галочка или что-то еще).

BindingAdapter следует просто использовать для преобразования чего-либо в нечто другое. Например: логическая переменная -> Strings TRUE или FALSE.

Пример логики ViewModel для ввода текста:

val textInput = BehaviorSubject.create<String>()
val inputCorrect: LiveData<Boolean>

textInput
    .switchMap { input -> textCorrect(input) }
    .subscribe( inputCorrect.postValue(it) )
...