俗话说,不会偷懒的程序员不是好程序员!作为一名Android的开发者,我们已经厌烦了经常写大量的findViewById以及setOnClickListener代码。而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。

注意:如果你是使用的Eclipse引用该library,需要做一些配置(参考http://jakewharton.github.io/butterknife/ide-eclipse.html),否则会运行出错。

配置:

1.在官网上( http://jakewharton.github.io/butterknife/)下载jar包,放到项目的libs下。

2.配置eclipse.右击需要注解的项目-->Properties-->java Compiler-->Annotation Processin--> 钩一下 Enable project specific settings 其它的就会自动钩上了–> Factory Path ( 钩一下Enable project specific settings )–> 最后Add JARs 把刚刚项目libs下的jar包加进来。配置完成!

使用:

之前我们是这样写代码的:

使用ButterKnife之后的代码是这样的:

是不是非常简洁易用?下面系统的介绍下ButterKnife的用法。

Butter Knife 的特性

1.支持Activity中的View注入

2.支持View中的View注入

3.支持View事件回调函数注入

目前支持如下事件回调函数:

  • View: @OnLongClick and @OnFocusChanged.

  • TextView: @OnEditorAction.
  • AdapterView: @OnItemClick and @OnItemLongClick.
  • CompoundButton: @OnCheckedChanged.

下面是一些注入的示例代码:

在Activity中注入

在Fragment中注入

在ViewHolder模式中注入

注入回调函数

下面是几种注入回调函数的方法示例:

Reset函数

如果需要在界面销毁的时候,把注入的View设置为Null,则可以用reset函数:

另外还支持可选的View注入,如果该View没有,就没有吧:

还有两个findViewById函数来简化查找View的方式,如果上面都满足不了你的需求,你可以用用他们:

最后,如果你是用Android Studio来作为IDE的话,那么有一个ButterKnife的插件android-butterknife-zelezny

该插件可以让你手动生成上述注入代码,从此让自己成为一个更懒惰的程序员吧。奋斗ing!

转载于:https://www.cnblogs.com/Joanna-Yan/p/4517100.html

ButterKnife--View注入框架相关推荐

  1. Android之ButterKnife--View注入框架

    俗话说:"不会偷懒的程序员不是好的程序员!".作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而Butter ...

  2. Butter Knife:一个安卓视图注入框架

    Butter Knife:一个安卓视图注入框架 2014年5月8日 星期四 14:52 官网: http://jakewharton.github.io/butterknife/ GitHub地址: ...

  3. 调用其他app 的lib_ButterKnife执行效率为什么比其他注入框架高?它的原理是什么...

    面试官: ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么 心理分析: ButterKnife框架一直都是使用,很少又开发者对butterknife深入研究的,既然你是面试A ...

  4. Android神匕首—Dagger2依赖注入框架详解

    简介 Dagger-匕首,鼎鼎大名的Square公司旗下又一把利刃(没错!还有一把黄油刀,唤作ButterKnife) Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagg ...

  5. android组件浮动在activity上_Jetpack Hilt 依赖注入框架上手指南

    code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:LvKang-insist 链接:https://juejin.im/post/5efdff9d6fb9a07e ...

  6. 依赖注入的三种方式_ASP.NET Core技术研究-探秘依赖注入框架

    ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...

  7. ASP.NET Core技术研究-探秘依赖注入框架

    ASP.NET Core在底层内置了一个依赖注入框架,通过依赖注入的方式注册服务.提供服务.依赖注入不仅服务于ASP.NET Core自身,同时也是应用程序的服务提供者. 毫不夸张的说,ASP.NET ...

  8. Kotlin依赖注入框架Koin的使用

    一.引入Koin依赖 Koin是一款轻量级的依赖注入框架,根据官方的描述,它无代理,无代码生成,无反射. def koinVersion = "2.2.2"//Koin for a ...

  9. Android 依赖注入框架 Dagger2使用

    前言 Dagger 2这个匕首确实很难上手,上手后又比较难瞬间掌握,可以这么说,刚开始使用就是用来尝(zhuang)鲜(X)的,但相信随着使用的加深,会不断体会到它对于整个项目架构的极强辅助作用,能使 ...

最新文章

  1. 版本信息文件、虚拟环境创建
  2. JavaWeb(一)——web服务器、Tomcat安装和配置
  3. mysql粘贴数据_Navicat 如何复制粘贴数据
  4. 最牛营业部——国信泰然九路揭秘
  5. Kafka本身的架构
  6. php 的cookie设置时间,php cookie时间设置的方法-PHP问题
  7. 无线路由器的配置实例
  8. C语言指定初始化器解析及其应用
  9. CC++中的时间函数和时间类
  10. 昇腾AI处理器软件栈--张量加速引擎(TBE)
  11. python学习(六)----文件和异常
  12. 分组 php库,纯真ip数据库查询的php实现(补充分组查询)
  13. 图形推理的50大规律
  14. 格签名困难假设: 最短向量问题SVP
  15. 龙果开源支付系统 架构全新升级
  16. 【语义分割】Smoothed Dilated Convolutions for Improved Dense Prediction阅读笔记
  17. 操作——【1.8 关于音高、时值、位置 】(二)
  18. 学习MySQL的第二天:SQL(基础篇)
  19. 大学cad课要用计算机么,cad2010大学课程
  20. 安卓使用服务完成音乐播放器

热门文章

  1. git没有changId解决方法
  2. c#正则表达式--环视
  3. Javascript作用域原理---预编译
  4. 循环控制结构程序05 - 零基础入门学习C语言20
  5. uiautomatorviewer 双击闪退问题解决
  6. Apache提示You don‘t have permission to access / on this server问题解决
  7. Springboot 抛出Failed to determine a suitable driver class异常原因
  8. ssh暴力破解解决方案
  9. 解决Jira和Confluence访问打开越来越缓慢问题
  10. 分布式事务之消息补偿解决方案