【原创】初识懒人开发库---ButterKnife
今天再看别人代码的时候,看到了自己没见过的代码,看起来挺方便的,具体代码如下:
@InjectView(R.id.iv_left)
ImageView iv_left;
@InjectView(R.id.et_account)
EditText et_account; ButterKnife.inject(this); @OnClick(R.id.iv_left)
public void back() {
finish();
}
观察发现和我们在xml文件中定义的控件有一定的关系,就去百度了一下,才知道是一种懒人框架,可以直接实例化控件,并且建立控件的点击监听事件,去学习使用的过程很曲折,不多说,直接说最简单的办法:
- 打开Android Studio的Setting---->Plugins---->browse repositories..,点开之后搜索Android ButterKnife;
- 点击Install就可以添加到自己的设计器里面,然后添加完成要重启AS;
- 在活动的setContentView(R.layout.activity_login);处,把鼠标光标停留在activity_login布局处,点击右键选择Generate--->Generate ButterKnife Injections,就可以让我们自己选择要实例化的控件,还可以创建ViewHolder来存放控件
下面是自己使用的一个例子,看起来很直观,并且很省事:
public class LoginOneKeyActivity extends BaseActivity { MyCountTimer timer; @Bind(R.id.iv_left)
ImageView ivLeft;
@Bind(R.id.tv_title)
TextView tvTitle;
@Bind(R.id.et_phone)
EditText etPhone;
@Bind(R.id.et_verify_code)
EditText etVerifyCode;
@Bind(R.id.btn_send)
Button btnSend;
@Bind(R.id.btn_login)
Button btnLogin; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_onekey);
ButterKnife.bind(this);
ivLeft.setVisibility(View.VISIBLE);
tvTitle.setText("手机号码一键登录");
} @OnClick({R.id.iv_left, R.id.btn_send, R.id.btn_login})
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_left:finish();
break;
case R.id.btn_send:requestSMSCode();
break;
case R.id.btn_login:oneKeyLogin();
break;
}
}
可见,比原来使用findViewById方法来实例化控件方便了很多,并且可以直接生成点击事件,在里面写你要做的操作即可
【原创】初识懒人开发库---ButterKnife的更多相关文章
- 懒人习惯之ButterKnife Zelezny
项目地址:https://github.com/avast/android-butterknife-zelezny 这个是Android Studio的插件. 其实就间接帮你把LoadView的过 ...
- 【原创】窥视懒人的秘密---android下拉刷新开启手势的新纪元
小飒的成长史原创作品:窥视懒人的秘密---android下拉刷新开启手势的新纪元转载请注明出处 **************************************************** ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- Ubuntu14.04 CUDA8.0 CUDN4.0 NVIDIA1080 多种深度框架(懒人三步装) - 从入门到放弃
这是一个懒人快速安装教程,1080卡有点麻烦,因为cuda需要8.0.为了安装方便直接把命令写成三个shell脚本. 代码基本是http://blog.csdn.net/langb2014/artic ...
- [超级懒人最简单法]iPhone 6 plus 适配切图方法分享(转载文章)
网络上已经有很多适配教程,可是看了半天总是半懂不懂..最后还是要综合多个教程再动动脑子动动手,最好有程序大哥帮你试一下(这得有多大的福气) 如果有跟我一样情况的: 1. 有人说用sketc ...
- 详细的OS X Yosemite 10.10懒人版安装教程
永远记住一句话:难,是因为不会.先是要放宽心态,才更利于解决安装过程中这样那样的问题.多尝试多动脑,不要有过份的依赖.很多问题到解决以后,才发现是如此的简单,我装黑苹果是拿来使用的,所以我的目的是装好 ...
随机推荐
- sqlserver存取过程-游标
ALTER proc [dbo].[common_proc_temp2] as begin declare @id varchar(50); declare @cbcontractid varcha ...
- [Swift] 疑难杂症
[Swift] 疑难杂症 1.class .... has no initializers --> class 的每一个元素都需要初始化,否则会报错,除了可空元素
- 配置FastReport,FastReport报表加载不出来
插件链接: Demo地址:http://pan.baidu.com/s/1dEXUvsP FastReport.Net软件地址:https://pan.baidu.com/s/1c2kNBVi ...
- 分布式管理系统-git安装及配置
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config - ...
- selenium第一课(selenium+java+testNG+maven)
selenium介绍和环境搭建 一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包 ...
- JQuery源码解析--callbacks
(function (global, factory) { factory(global); })(this, function (window, noGlobal) { var rootjQuery ...
- alphaBlend
// Alpha = srcAlpha + dstAlpha - srcAlpha * dstAlpha / 0xFF;// R = (srcR * srcAlpha + dstR * dstAlph ...
- SpringMVC保存数据到mysql乱码问题
SpringMVC保存数据到mysql乱码问题 乱码问题常见配置 一.web.xml配置过滤器 <filter> <filter-name>encoding-filter< ...
- 笔记本win8,mac10.10,ubuntu,android四系统安装
前言,最简单的是win8和ubuntu 最难啃的是mac android版只是要注意一个小技巧,目前算是独创 (被android坑了一次,两块硬件,android版把500Gntfs的硬盘整个识别为一 ...
- ssh注解整合
ssh注解整合 导入java包 配置struts2环境 1. 创建struts.xml配置文件 <?xml version="1.0" encoding="UTF- ...