首页 > 解决方案 > Android 架构组件

问题描述

我正在为我的应用程序使用 MVVM android 架构。

我想实现点击事件,那么,我们是否需要使用数据绑定架构组件,或者我们可以只使用活动来处理点击事件并验证用户输入?

实现这一点的最佳方法是什么?

标签: androidandroid-architecture-componentsandroid-eventandroid-mvvm

解决方案


那么问题将是使用Databinding与否。以下是一些优点和缺点Databinding

优点:

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

缺点:

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

但是......既然Google已经宣布它是 Android 架构组件的一部分,我相信你应该使用它。

实现这一点的最佳方法是什么?

我不知道你对 Binding Adapters 有多熟悉,Databinding但你应该知道一些关于Binding Adapters的知识,因为onClick你不需要它。只需android:onClick在 XML 文件中添加属性。你也可以找到这个 Codelab 来正确实现它:

https://codelabs.developers.google.com/codelabs/android-databinding/#0

例子:

首先确保你Databinding在你的build.gradle

android {
...
    dataBinding {
       enabled true
    }
}

之后转到布局,您将使用数据绑定(并为此确保它将是一个活动/片段),只需在您的IDE 中键入 ALT+TAB ,然后......

之后,定义类型,例如 aViewModel及其名称。在将使用点击功能的视图中添加我上面所说的内容。( 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 本身提供,因为它是Databinding根据 xml 命名在库上处理的。

这是最基本的。祝你好运。


推荐阅读