【原创】初识懒人开发库---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懒人版安装教程
永远记住一句话:难,是因为不会.先是要放宽心态,才更利于解决安装过程中这样那样的问题.多尝试多动脑,不要有过份的依赖.很多问题到解决以后,才发现是如此的简单,我装黑苹果是拿来使用的,所以我的目的是装好 ...
随机推荐
- unity 3d孤岛求生案例代码解析
这是第一人称控制器脚本,如果把摄像机放在胶囊体后面感觉就是第三人称了啊. #pragma strict var speed : float = 6.0; var jumpspeed: float = ...
- 自定义Java集合
一.泛型 1.在JDK1.4以前,所有的集合元素全都按照Object来存储,拿出来还要进行强制转型.由于这样的做法有太多的缺点,容易出现ClassCaseException,不安全,让人不省心,于是乎 ...
- iOS 判断字符串是否为空
写一个字符串的扩展,实现判断字符串是否为空- (BOOL) isBlankString { if ([self isEqualToString:@"(null)"]) { retu ...
- go 静态web服务器
package main import ( "net/http" ) type helloHandler struct{} func (h *helloHandler) Serve ...
- 浅析jquery ui的datepicker组件
今天计划在博客上添加一个日历,方便用户查看日期.Google了一圈,最终决定使用jquery ui的datepicker部件实现.原因有三:Datepicker使用配置比较简洁,几行代码就可以得到一个 ...
- keepalived+nginx高可用负载均衡环境搭建
上篇说道keepalived的环境搭建,本来keepalived结合lvs更有优势,但是也可以结合nginx来使用.下面接着说下nginx的环境搭建 环境信息: nginx(master) 192. ...
- 修改tomcat的端口
- javascript for循环练习
有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔.小兔.成兔对数分别是多少. 幼兔 1 小兔 0 成兔 0幼兔 0 小兔 1 成兔 0 幼兔 1 小兔 ...
- [转] Oracle数据库备份与恢复 - 增量备份
转:http://blog.csdn.net/pan_tian/article/details/46780929 RMAN一个强大的功能是支持增量备份,增量备份中心思想就是减少备份的数据量,我们不 ...
- 谷歌Cartographer学习(1)-快速安装测试
谷歌自己提供了安装方法,但是安装比较繁琐,我做了一定的修改,代码放到个人github上,https://github.com/hitcm/. ros下面的安装非常快捷,只需要catkin_make即可 ...