java - 何时使用 BindingAdapter,何时使用 MVVM 中的 liveData 或 observable 字段?

标签 java android design-patterns mvvm android-architecture-components

我对使用这些模式的最佳方法感到困惑,例如验证 EditText 文本的最佳位置在哪里?在 Activity 或 ViewModel 中使用 observable 字段还是使用 bindingAdapter

最佳答案

如果您正在谈论验证文本输入是否正确或不正确,这是逻辑,应该在 ViewModel 中处理,可以观察输入更改,然后根据它们是正确还是错误不正确,发生了一些事情(例如红色下划线或绿色复选标记或其他东西)。

BindingAdapter 应该简单地用于将某些东西转换为其他东西。 例如: boolean 变量 -> 字符串 TRUE 或 FALSE。

文本输入的 ViewModel 逻辑示例:

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

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

关于java - 何时使用 BindingAdapter,何时使用 MVVM 中的 liveData 或 observable 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073145/

相关文章:

java - 单击 JFrame 标题时隐藏弹出窗口

android - Kotlin 中的通知每天在同一时间重复

android - x86 Android AVD 是否可以在 Linux on AMD 上运行?

java - 抽象工厂模式 - 未使用的代码

javascript - 使用回调异步加载 JavaScript 文件

c# - 是否有处理大型机数据的模式?

java - JDK8 - 尝试使用 Maven javadoc 插件生成 javadoc 时出现错误 "class file for javax.interceptor.InterceptorBinding not found"

java - android geocoder api 10 服务不可用

Java 图形表现奇怪

java - 在Android中动态创建应用程序类