我正在为应用程序使用MVVM android体系结构。
我想实现click事件,那么,我们是否需要使用数据绑定体系结构组件,还是可以仅使用活动来处理click事件并验证用户输入?
实现此目标的最佳方法是什么?
答案 0 :(得分:3)
好吧,这个问题是否在使用Databinding
。以下是Databinding
的一些优缺点:
优点:
缺点:
但是...由于Google
已经将其宣布为Android Architecture组件的一部分,因此我相信您应该使用它。
实现此目标的最佳方法是什么?
我不知道您对Databinding
有多熟悉,但是您应该对Binding Adapters有所了解,而在onClick
中则不需要。只需在XML文件中添加android:onClick
属性即可。您也可以找到此Codelab来正确实现它:
https://codelabs.developers.google.com/codelabs/android-databinding/#0
示例:
首先请确保您在Databinding
中启用了build.gradle
android {
...
dataBinding {
enabled true
}
}
在转到布局之后,您将使用数据绑定(为此确保它是一个活动/片段),只需在IDE and than....
中键入ALT + TAB。然后,定义类型,例如ViewModel
及其名称。在将使用单击功能的视图中,添加我上面所说的内容。 (android:onClick="@{() -> viewmodel.onLike()}"
)
您还没有结束。您将需要以某种方式将逻辑连接到该数据绑定,因此请转到Java / Kotlin代码以获取您的Activity / Fragment和:
将setContentView(R.layout.some_activity)
替换为val binding : SomeActivityBinding =
DataBindingUtil.setContentView(this, R.layout.some_activity)
请注意,SomeActivityBinding
由IDE本身提供,因为它是根据XML命名在Databinding
库中处理的。
那是最基本的。祝好运。