Android ButterKnife注解式开发
在Android开发中findViewById和setOnClickListener解脱写法。
在任意的一个类中 @Bind(R.id.et) EditText editText;
@OnClick(R.id.btn)
public void btnClick(){ Toast.makeText(MainActivity.this,editText.getText().toString(),3000).show(); }
@Override protected void
onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ButterKnife.bind(this); }
这是ButterKnife注解 在Gradle中引用 compile 'com.jakewharton:butterknife:7.0.1'
Eclipse 下载Jar包
在Activity中使用 onCreate中加入这一行 (切记) ButterKnife.bind(this);
ButterKnife通过@Bind 注解传入View ID
@Bind(R.id.et) EditText editText; @Bind(R.id.btn) Button button;
绑定资源到类成员上可以使用@BindBool、@BindColor、@BindDimen、@BindDrawable、@BindInt、@BindString
。使用时对应的注解需要传入对应的id资源,例如@BindString你需要传入R.string.txt的字符串的资源id。
@BindString(R.string.title) String title;
@BindDrawable(R.drawable.graphic) Drawable graphic;
@BindColor(R.color.red) int red;
@BindDimen(R.dimen.spacer) Float spacer; View监听器的绑定,在ButterKnife注解中传入ViewID 监听器将自动配置到方法中
@OnClick(R.id.btn)
public void btnClick(View view){ Toast.makeText(MainActivity.this,editText.getText().toString(),3000).show(); }
ButterKnife不仅支持@OnClick,还支持@OnLongClick,@OnTouch等等,详细参考Javadoc http://jakewharton.github.io/butterknife/javadoc/ 在非Activity中使用 Butter Knife提供了ButterKnife.bind()的几个重载,只要传入根布局,便可以在任何对象中使用注解绑定。 @Bind(R.id.button1) Button button1; @Bind(R.id.button2) Button button2; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fancy_fragment, container, false); ButterKnife.bind(this, view); // TODO Use fields... return view; } 在ListView的Adapter中 @Override public View getView(int position, View view, ViewGroup parent) { ViewHolder holder; if (view != null) { holder = (ViewHolder) view.getTag(); } else { view = inflater.inflate(R.layout.whatever, parent, false); holder = new ViewHolder(view); view.setTag(holder); } holder.name.setText("John Doe"); // etc... return view; } static class ViewHolder { @Bind(R.id.title) TextView name; @Bind(R.id.job_title) TextView jobTitle; public ViewHolder(View view) { ButterKnife.bind(this, view); } } 对于在Fragment中使用ButterKnife需要注意:Fragment与Activity生命周期不同,Fragment比Activity多个解除绑定的步骤 @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.unbind(this); }
Android ButterKnife注解式开发的更多相关文章
- 【转】Eclipse中设置ButterKnife进行注解式开发步骤 -- 不错
原文网址:http://www.bubuko.com/infodetail-974262.html 最近在进行Android注解式开发的学习,正在尝试用ButterKnife.ButterKnife的 ...
- 总结切面编程AOP的注解式开发和XML式开发
有段日子没有总结东西了,因为最近确实有点忙,一直在忙于hadoop集群的搭建,磕磕碰碰现在勉强算是能呼吸了,因为这都是在自己的PC上,资源确实有点紧张(搭建过程后期奉上),今天难得大家都有空(哈哈哈~ ...
- SpringMVC 注解式开发
SpringMVC的注解式开发是指,处理器是基于注解的类的开发.对于每一个定义的处理器,无需再配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册.即注解替换是配置文件中对于处理器的注册 ...
- Spring MVC注解式开发
MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @ ...
- 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值
上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...
- 《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)
上一篇我们学习了注解式开发的配置方式并写了一个小Demo跑起来.今天我们来学习注解开发的参数接收.处理器方法中的常用参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用.具体 ...
- 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)
上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...
- 3.2.3 SpringMVC注解式开发
SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...
- Hibernate5笔记9--Hibernate注解式开发
Hibernate注解式开发: (1)注解式开发的注意点: Hibernate中使用注解,主要是为了替代映射文件,完成“类到表,属性到字段”的映射. JPA提供了一套功能强大的注解.Hibernat ...
随机推荐
- Kylin与CDH兼容性剖析
1. 概述 Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...
- SGML/HTML/XML之间的关系
1 历史起源 SGML--1986年国际标准化组织出版发布了一个信息管理方面的国际标准(ISO 8879:1986信息处理). HTML 2.0--1995年11月作为RFC 1866发布 XML 1 ...
- ReSharper 全教程
Resharper系列 更多关于Resharper的介绍 参考我之前的文章: Resharper 详细教程 提升ReSharper和Visual Studio的性能 Visual Studio中使用R ...
- 带新手走进神秘的HTTP协议
在开发的时候经常需要访问网络,比如Android就有好多这方面的框架:Volley.OkHttp.Retrofit等,当你看这些框架源码时,可能会很好奇关于http的部分,它的首部字段是什么意思,ht ...
- ssm工程集成mybatis分页插件pagehelper
1 首先需要在mybatis的配置文件SqlMapConfig.xml文件中配置pagehelper插件 <plugins> <plugin interceptor=" ...
- Zabbix实战-简易教程--通过公众平台企业号发送短信
一.注册企业号[体验号] 打开页面 http://qydev.weixin.qq.com/try?t=experience (2016年注册的时候的连接)现在可能变了.进行注册操作,默认有90天的 ...
- Android基础_ContentProvider组件
一.了解Contentprovider组件 1.1Contentprovider是数据的提供者,Android四大组件之一,程序之间数据共享的接口 1.2activity系统中对数据的访问限制十分严格 ...
- 【LCT维护基环内向树森林】BZOJ4764 弹飞大爷
4764: 弹飞大爷 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 101 Solved: 52[Submit][Status][Discuss] ...
- WPF Binding学习(二)
Binding作为数据的桥梁,连通业务逻辑层的对象(源对象)和UI的控件对象(目标对象).在这座桥梁上,我们不仅可以控制在源对象与目标对象是双向通行还是单向通行.还可以控制数据的放行时机,甚至可以在这 ...
- 使用mysql乐观锁解决并发问题
案例说明: 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后提交.最后实际账户余额为1000 ...