【发布时间】:2019-07-17 17:50:39
【问题描述】:
你好! 我正在努力提高我的 android 架构技能。我发现了这个article,它说在视图中调用 viewModels 函数是一种不好的做法。
例如,以这种方式调用函数是一种不好的做法。
override fun onClick(v: View?) {
if (v == vk_login) {
loginViewModel.onVKLoginClick()
}
}
我了解如何使用 LiveData 将数据和操作从 ViewModel 传输到 View。为此,我们在视图中初始化 LiveData。但我找不到任何信息如何使用 LiveData(或类似的)从视图中发送用户操作信息。
我应该在视图中初始化 LiveData 并订阅视图模型吗(听起来很奇怪)。
或者像这样使用smth更好:
loginViewModel.nameFromUser.value = "some name from text view"
或者我发现的文章是错误的,可以从视图中调用 viewModels 函数?
【问题讨论】:
-
您是否正在寻找两种方式的数据绑定。就像 viewmodel 需要知道用户是否在 edttext 中输入了某些内容并单击了按钮。如果是这样,请搜索两种方式的数据绑定。 developer.android.com/topic/libraries/data-binding/two-way
-
感谢您提供此链接,但我现在尝试不使用数据绑定。 I对我来说,使用数据绑定比没有它创建干净的架构更容易。因此,出于教育目的,在我当前的项目中禁止数据绑定。不过谢谢,我不知道Databinding的这个功能。
-
你还在迷茫吗?你得到答案了吗?
标签: android mvvm architecture android-architecture-components