WEBVTT

00:00.140 --> 00:01.040
欢迎回来

00:01.040 --> 00:05.180
在本视频中, 我们将向项目中添加数据绑定库｡ 

00:05.180 --> 00:10.010
这是非常重要的一步, 因为我们要添加与回收视图的数据绑定｡ 

00:10.040 --> 00:13.370
我们在前面的章节中讨论过这个话题｡ 

00:13.370 --> 00:19.220
我们在reflection和mVVM部分实现了与Recycler View的数据绑定｡ 

00:19.220 --> 00:26.270
但我重复这一点, 因为这是一个非常重要的概念, 你会在未来的项目和许多应用程序中使用它｡

00:26.270 --> 00:29.990
所以第一步是启用数据绑定｡ 

00:29.990 --> 00:37.250
让我们转到Android范围, 并允许使用构建特性进行数据绑定｡ 

00:37.250 --> 00:42.200
在这里, 我将添加数据绑定等于真正的命中同步｡ 

00:42.200 --> 00:46.730
在那之后, 让我们在这里添加物品卡｡ 

00:46.730 --> 00:50.240
在这个布局中, 我将添加一个数据变量｡ 

00:50.240 --> 00:54.830
在数据变量之前, 我需要在布局标记中包含它｡ 

00:54.830 --> 01:04.670
因此, 布局为布局添加结束标记, 并确保将名称空间声明移动到布局中｡

01:04.700 --> 01:05.690
好多了

01:05.690 --> 01:15.110
然后把这个移到这里, 好的, 不要给布局标签添加任何width或height属性｡ 

01:15.140 --> 01:24.440
好的, 为了防止任何可能的错误, 我将添加数据, 并在其中创建一个类型为user的变量｡ 

01:24.440 --> 01:29.210
我将其命名为user, 类型为master code和Firebase dot user class｡ 

01:29.210 --> 01:36.410
第一个文本视图将显示在用户名称中｡ 

01:36.410 --> 01:39.740
第二个文本视图将显示电话号码｡ 

01:39.740 --> 01:48.110
因此, 在用户点电话号码和第三个文本视图将显示该组｡ 

01:48.110 --> 01:52.970
在user dot group, 这很简单｡ 

01:52.970 --> 01:56.210
我们在之前的视频中已经了解到了｡ 

01:56.210 --> 02:02.480
第三步是移动到这里的模型类并添加基础Observable｡ 

02:02.510 --> 02:07.070
添加可绑定注释并通知数据集更改方法｡ 

02:07.070 --> 02:10.520
我们还是从基础观测值开始｡ 

02:10.520 --> 02:14.990
这里我需要扩展base observable｡ 

02:14.990 --> 02:19.400
Base Observable是Android数据绑定库提供的一个类｡ 

02:19.400 --> 02:20.240
你可以看到它｡ 

02:20.270 --> 02:23.990
我们从Android x dot数据绑定包中导入了它｡ 

02:24.020 --> 02:32.600
它作为一个基类, 用于实现可观察的属性和对象, 以通知对其属性的更改｡

02:32.600 --> 02:43.100
您可以在ViewModel或模型类中扩展Base Observable, 并使用add Bindable注释getter方法以创建可观察属性｡

02:43.100 --> 02:55.700
当基本可观察对象中的属性发生更改时, 可以调用notify property changed方法来通知数据绑定框架触发UI更新的更改｡

02:55.730 --> 03:03.050
我们在之前的视频中讨论过这个问题, 所以请各位, 如果你有任何疑问, 任何问题,

03:03.050 --> 03:11.060
请回到前面的部分或在问答部分发表评论, 我会帮助你更好地理解它｡

03:11.060 --> 03:17.630
第二步是使用addBindable注释来注释getter方法｡ 

03:17.630 --> 03:20.210
所以我们有三个领域｡ 

03:20.210 --> 03:23.180
所以我们有三个getter和三个setter｡ 

03:23.180 --> 03:27.770
让我们从用户名开始, 并使用add Bindable对其进行注释｡ 

03:27.770 --> 03:33.200
Add Bindable annotation是Android数据绑定库中使用的一个annotation｡ 

03:33.200 --> 03:40.160
它应用于数据绑定感知类（通常是ViewModel或数据类）中的可观察属性的getter方法,

03:40.160 --> 03:46.400
以指示该属性可以绑定到UI元素｡

03:46.400 --> 03:52.760
所以这说明这个用户名可以绑定到一个UI元素｡ 

03:52.760 --> 04:04.640
当add Bindable属性的值更改时, 它会触发数据绑定更新, 从而使关联的UI元素自动反映更新后的值｡

04:04.670 --> 04:13.400
它简化了保持UI元素与数据更改同步的过程, 减少了手动UI更新的需要｡

04:13.400 --> 04:20.900
因此, 当您添加Bindable注释时, 这个get user name将通知这个文本视图,

04:20.900 --> 04:25.970
它使用user. username, 并将再次发生任何更改｡

04:25.970 --> 04:32.000
伙计们, 我会去电话号码的获取器和用户组的获取器｡ 

04:33.260 --> 04:37.310
第三步是添加通知数据集｡ 

04:37.310 --> 04:38.170
改变方法｡ 

04:38.180 --> 04:42.770
这里我将转到设置用户名和通知属性｡ 

04:42.770 --> 04:52.540
Changed是一个方法调用, 用于通知数据绑定框架可观察属性的值已更改｡

04:52.550 --> 05:05.360
此方法通常用于扩展基础Observable的类中, 以在属性值更改时触发UI和视图中的更新｡

05:05.390 --> 05:11.390
再次, 这里我们使用绑定双精度, 最后一步是通知属性更改｡ 

05:11.390 --> 05:16.820
这里我将从b r开始, 它指的是绑定资源｡ 

05:16.820 --> 05:22.550
而这是数据绑定库提供的自动生成类｡ 

05:22.550 --> 05:29.690
它包含表示项目中Bindable批注属性的整数常量｡ 

05:29.690 --> 05:33.380
常量以属性名称命名｡ 

05:33.380 --> 05:41.810
你可以看到我们可以访问用户组､ 用户名､ 所有电话号码和类｡

05:41.810 --> 05:45.590
我们对电话号码､ 用户名和组用户感兴趣｡ 

05:45.590 --> 05:51.560
我需要通知用户名的任何变化, 所以我会通知b r点用户名｡ 

05:51.560 --> 05:53.500
你可以看到这是在bindable｡ 

05:53.510 --> 05:55.910
所以我在这里不定义任何变化｡ 

05:55.910 --> 05:59.480
用这个bind双注释的get username方法｡ 

05:59.480 --> 06:03.440
同样的方法我会用它在设置的电话号码｡ 

06:03.440 --> 06:06.140
在这里我会通知电话号码｡ 

06:06.140 --> 06:11.720
让我们向下到组用户并通知组用户｡ 

06:11.720 --> 06:22.220
当调用notify property changed方法时, 实际上是告诉数据绑定更新绑定到指定属性的任何UI元素｡

06:22.220 --> 06:25.850
我们已经三次叫停这个案子了｡ 

06:25.850 --> 06:33.710
因此, 这里的三个文本视图将使用值的最新更改进行更新｡ 

06:33.710 --> 06:41.630
用户名､ 电话号码和组用户数据绑定将负责刷新与该属性关联的UI元素,

06:41.630 --> 06:47.870
确保显示或显示更新的值｡

06:47.900 --> 06:52.010
这就是我们如何将数据绑定添加到布局和模态类｡ 

06:52.010 --> 06:56.420
现在让我们学习如何将数据绑定添加到适配器类｡ 
