Android 视图注入——黄油刀是个什么梗
来源:广州中睿信息技术有限公司官网
发布时间:2018/8/20 14:10:18 编辑:admin 阅读 2556
做过Android开发的,多少都写过下面这几行代码:setContentView(R.layout.activity_main)TextViewTextView=findViewById(R.id.

做过Android开发的,多少都写过下面这几行代码:


setContentView(R.layout.activity_main);

TextView TextView = findViewById(R.id.TextView1)

textView.setText(“Hello..”)


这个代码是不是让你觉得很亲切?

当然,这种亲切感,就是由我欲Set,必先Get(这里的Get就是find)的定性思维带来的,而这种定性思维,隐约散发着啰嗦,单调,重复的气息。


技术追求永无止境,介于牛A和牛C之间的程序猿,就要想一想,能否让代码简洁一些,能否直接对一个变量进行属性设置?


比如像这样:


TextView TextView

textView.setText(“Hello..”)


当然,这样写,你肯定会骂彪哥我,因为这是错误的代码,TextView没有指向任何对象,就直接来set属性,肯定是错误的。但如果用些其他的方式辅助一下呢,比如对象注入的方式呢?是否可行呢?

彪哥在这里很负责任的告诉你,当然可行。这里推荐一个框架,叫ButterKnife,中文名叫黄油刀。Logo是这个:

1.jpg

一块桌布,一个盘子,一个Android小机器人形状的黄油,一把刀。这些合起来被大家戏称为黄油刀。Logo的表面意思是说,我们可以通过这把锋利的刀去刮掉牢牢黏在盘子上的黄油,技术层面的隐含意思是为Android 视图(View)提供绑定字段和方法。去替换之前琐碎的初始化~

说了这么多,那具体如何使用呢?

先加依赖,依赖的添加有2处。

  1. 1.      第一处是在Project 的build.gradle中。

2.jpg

  1. 2.第二处是在Module的build.gradle中配置一下:

3.jpg

这样依赖环境就配置好了,然后就可以了。

下面是使用方法:

4.png

在Activity当中,只需要执行了ButterKnife.bind(this)语句之后,就可以对任何View类型变量(包含所有的View派生类)变量,用@BindView(id)执行视图对象注入。

当然,这段讲解,只是黄油刀功能的一部分,但窥一斑而知全豹。希望大家可以多多学习,提升自己的Android开发水平。


中睿IT服务


联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2