**俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。
1、先来看一段代码示例说明下ButterKnife是如何简化代码的:
1.1采用findViewById( )方法产生的代码:
1.2而用ButterKnife之后的代码是这样的:
是不是非常简洁易用?下面就来系统的介绍下ButterKnife的用法。
在Android编程过程中,我们会写大量的布局和点击事件,像初始view、设置view监听这样简单而重复的操作让人觉得麻烦类,所以可以采用注解的方式去实现,而ButterKnife则是注解中相对简单易懂的很不错的开源框架,而网上的文档和例子都过时了,7.0之后的版本改动很大,之前的注解都不能用了,所以借鉴官方文档及网友的一些意见总结了一下,接下来就介绍一下如何使用。基本参照官方文档,加上自己的心得。
ButterKnife 优势:
1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.运行时不会影响APP效率,使用配置方便
4.代码清晰,可读性强
Butter Knife 的特性
1.支持 Activity 中的 View 注入
2.支持 View 中的 View 注入
3.支持 View 事件回调函数注入
目前支持如下事件回调函数:
View: @OnLongClick and @OnFocusChanged.
TextView: @OnEditorAction.
AdapterView: @OnItemClick and @OnItemLongClick.
Compounon: @OnCheckedChanged.
使用心得:
1.Activity ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind
2.Fragment ButterKnife.bind(this, mRootView);
3.属性布局不能用private or static 修饰,否则会报错
4.setContentView()不能通过注解实现。(其他的有些注解框架可以)
官网http://jakewharton.github.io/butterknife/
使用步骤:
一.导入ButterKnife jar包:
1)如果你是Eclipse,可以去官网下载jar包 2)如果你是AndroidStudio可以直接 File->Project
Structure->Dependencies->Library dependency 搜索butterknife即可,第一个就是
3)当然也可以用maven和gradle配置
我是使用Windows上的Android Studio 2.0版本,具体过程截图如下:
添加注解开发的库和依赖及相关插件:
随后,在你需要导入注解的Activity或者Fragment或者ViewHolder的layout资源代码上,右击,选择 Generate 然后Generate ButterKnife Injections,这时候生成类似于下列的选择框:
Element为view的类型,ID为layout中资源的id名字,Variable Name即为你在代码中引用出来的变量名,点击Confirm后即可。如下图:
一个题外话,为啥这个插件名字叫Zelezny呢?其实这个是一个捷克名人的名字,他是一名标枪运动员和奥运金牌的获得者,也是标枪项目世界纪录保持者,赞一个!
Android开发so easy,有木有这样觉得!
未完待续。。。。。。