我正在使用MVVM Android架构来开发我的应用程序。
我想实现点击事件,所以我们需要使用数据绑定架构组件还是只需使用活动来处理点击事件并验证用户输入?
实现这个功能的最佳方法是什么?
我正在使用MVVM Android架构来开发我的应用程序。
我想实现点击事件,所以我们需要使用数据绑定架构组件还是只需使用活动来处理点击事件并验证用户输入?
实现这个功能的最佳方法是什么?
问题是使用Databinding
还是不使用。以下是Databinding
的一些优缺点:
优点:
缺点:
但是...由于Google
已经将其作为Android Architecture组件的一部分发布,因此我认为您应该使用它。
实现这个的最佳方法是什么?
我不知道您对Databinding
的熟悉程度,但您应该了解Binding Adapters的一些内容,并且在onClick
中你将不需要它。只需在XML文件中添加android:onClick
属性即可。此外,您可以找到这个Codelab以正确实现它:
https://codelabs.developers.google.com/codelabs/android-databinding/#0
示例:
首先,确保在您的 build.gradle
中启用了Databinding
android {
...
dataBinding {
enabled true
}
}
接下来,进入您将使用数据绑定的布局(请确保它是一个Activity/Fragment),然后在IDE中按ALT+TAB即可。
接下来,定义类型,例如ViewModel
及其名称。在将使用点击函数的视图中添加我上面说的内容。(android:onClick="@{() -> viewmodel.onLike()}"
)
你还没有完成。您需要以某种方式将逻辑连接到该数据绑定,因此转到您的Activity/Fragment的Java/Kotlin代码:
将setContentView(R.layout.some_activity)
替换为val binding : SomeActivityBinding =
DataBindingUtil.setContentView(this, R.layout.some_activity)
请注意,SomeActivityBinding
将由IDE自己提供,因为它根据xml命名在Databinding
库中进行处理。
那就是最基本的了。祝你好运。