Android 注解开发 ButterKnife使用详解及教程

**俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名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,有木有这样觉得!
未完待续。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值