本文为学习笔记,所用的图片、案例均为教学视频截图
源视频地址:阶段综合:篮球比赛计分器)
作者:longway777
项目内容
实现效果
输入队伍名称,可以通过按钮的点击对其进行积分,也可以撤销上一次操作,重置分数。
这用到了数据监听(LiveData),数据回绑到xml(DataBinding ),页面数据独立(ViewModel),上述都是jetpack组件的一员。
重点掌握:MVC架构
MVC架构让项目开发变得非常简单,去除繁杂的操作,让开发者能更加专注于应用的本身,减少代码的重复度,增加代码的可读性。
更重要的是完成了M(数据:model)、V(布局:view)、C(控制器:contoller)三部分的解耦。
减少的代码的重复度:可以体现在之前需要大篇幅的进行
findViewByid
,以及对各个按钮点击事件
的处理
模块分工明确:可以体现在activity中,没有了对数据的处理,控制器只需要关注与业务逻辑本身,模块化非常清晰。
降低MVC三个部分之间的耦合:意义重大,当其中一部分需要作出较大改动时,其他部分受到的影响会大大减少。
架构模块如下图(图源自b站jetPack教程,up主:longway777)
一、可视化图形编程创建main.xml
布局
创建如下图所示布局:
有了约束布局,这个界面创建的时间可以控制在5分钟以内,注意每当一个控件发出警告时,就立刻进行处理,而不是等到控件全部放完后再进行处理,容易混乱。
期间使用到的小技巧:
(1)字体大小参数设置等也是可以提取到资源文件中,以便于重复使用的。
这样,当我们设置其他相似控件就可以从这里提取资源
(2)预览,看看显示3个数,2个数具体效果会怎么样,用来观察显示不同数值时页面的效果,这里设置的数据不会对UI有影响。
(3)contentDescription到底是什么?
当开启了手机的辅助功能,如屏幕朗读,这时候每个控件上都应该有内容能够被系统读取出来。
二、创建viewModel:数据模块
主要内容如下:
创建数据,以及设置方法。
三、加入dataBinding:为后续在xml中绑定数据做准备
(1)在gradle中加入
(2)在main.xml中更换布局
(3)创建data变量
四、Activity:只需要管理dataBinding和viewModel
五、main.xml:数据绑定到xml
在xml中,点击控件右键可以跳转到具体代码
(1)对于textView: 数据监听,改变队伍的分数