Android体系结构组件

时间:2019-06-10 12:14:40

标签: android android-architecture-components android-event android-mvvm

我正在为应用程序使用MVVM android体系结构。

我想实现click事件,那么,我们是否需要使用数据绑定体系结构组件,还是可以仅使用活动来处理click事件并验证用户输入?

实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

好吧,这个问题是否在使用Databinding。以下是Databinding的一些优缺点:

优点:

  1. 使代码超级干净。
  2. 使代码更短。
  3. 易于测试。

缺点:

  1. 有时候很难调试。
  2. 有点笨重,增加了编译时间。

但是...由于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库中处理的。

那是最基本的。祝好运。