Java 何时使用BindingAdapter,何时在MVVM中使用liveData或observable字段?

Java 何时使用BindingAdapter,何时在MVVM中使用liveData或observable字段?,java,android,design-patterns,mvvm,android-architecture-components,Java,Android,Design Patterns,Mvvm,Android Architecture Components,我对使用这些模式的最佳方式感到困惑,例如,验证EditTexttext的最佳位置在哪里?在活动或视图模型中,使用可观察的字段或使用bindingAdapter 如果您谈论的是验证文本输入是否正确,这是逻辑,应该在ViewModel中进行处理,在ViewModel中可以观察到输入更改,然后根据输入是否正确,会发生一些情况(如红色下划线或绿色复选标记或其他情况) BindingAdapter只应用于将某些内容转换为其他内容。 例如:布尔变量->字符串TRUE或FALSE 文本输入的ViewModel

我对使用这些模式的最佳方式感到困惑,例如,验证
EditText
text的最佳位置在哪里?在活动或视图模型中,使用
可观察的
字段或使用
bindingAdapter

如果您谈论的是验证文本输入是否正确,这是逻辑,应该在ViewModel中进行处理,在ViewModel中可以观察到输入更改,然后根据输入是否正确,会发生一些情况(如红色下划线或绿色复选标记或其他情况)

BindingAdapter只应用于将某些内容转换为其他内容。 例如:布尔变量->字符串TRUE或FALSE

文本输入的ViewModel逻辑示例:

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

textInput
    .switchMap { input -> textCorrect(input) }
    .subscribe( inputCorrect.postValue(it) )
val textInput=BehaviorSubject.create()
val inputCorrect:LiveData
文本输入
.switchMap{input->textCorrect(input)}
.subscribe(inputCorrect.postValue(it))