本文主要是介绍ButterKnife 懒癌患者的福音,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
初了解到ButterKnife的时候,其实我的内心是拒绝的,毕竟,在我的潜意识里,我更求稳不求简便,所以活该我写了好几百遍的findViewById,昨天抽空学习了一下ButterKnife,内心无比奔腾,深深感悟到了一句话,现在写findViewById流的泪,是当初拒绝新技术脑子进的水。
开这篇帖,记录一下学习的过程,懒癌患者请注意,为了将懒癌进行到底,在项目开启之前,确保你的AS里,是有ButterKnife Zelezny的。如果没有,没有关系,先花几分钟下载一下,如果已经下载了,你可以迅速往下滚了,那么下载过程如下:
File-->Settings...打开设置窗口
由于我这边AS是已经下载好ButterKnife Zelezny了的,所以只能给一个截图,告诉你们怎么做。继上一步打开设置窗口之后,界面如下:
选中Plugins,然后搜索ButterKnife Zelezny,选中并安装就可以了,安装好之后,需要重启AS。
接下来进入ButterKnife的正式使用,使用的第一步,在gradle中添加依赖:
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
添加之后如图:
添加好依赖之后,重新同步一遍,确保你的依赖是添加成功的。
接下来,进入到Activity,传统Activity的写法一般就是这样的:
首先就是各种控件的声明,然后就是setContentView,在initView()中写一堆的findViewById,接下来要是按钮还有个什么点击事件之类的,就一堆的点击事件也跟着出来了。但是用了ButterKnife之后,福音来了,很简单,首先,把你的各种控件的声明把你的initView(),把你的各种setOnClickListener全部屏蔽掉,然后,setContentView紧接着就绑定ButterKnife,像这样:
然后对着你的视图文件,右键,注意,要对着你的视图文件名称右键,如图:
按操作来,只有视图文件的那个名称右键选择Generrate...才会出现ButterKnife的快捷操作,点击框中的那一项:
之后出现如下弹窗:
选中你要findViewById的控件,这里我全选了,所以Element处打个勾吧,如果有点击事件,很简单对应控件屁股后面的选择框,打个勾,最后,Confirm:
自此,就差不多啦,就是这么简单对吧~
当然,ButterKnife同样可以在Fragment和Adapter中使用,这里也简单的介绍一下:
在Fragment中,和Activity中差不多,这里简单一个例子说明,唯一不同的时候,是最初绑定的时候,其他的使用方式一样:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {super.onCreateView(inflater, container, savedInstanceState);View addPlanView;addPlanView = inflater.inflate(R.layout.new_fragment_scrolllayout_x76, null);ButterKnife.bind(addPlanView);//绑定return addPlanView;}
Adapter中是这样使用的,在快捷方式中,其实是有一个Create ViewHolder的,选中它,然后确认:
可以看到代码出来了一串东西:
那么怎么在代码中使用呢,很简单,一样只需要绑定视图就OK啦:
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = mInflater.inflate(R.layout.new_gridview_item_addplan, null);ViewHolder vh = new ViewHolder(convertView);//重点在于这一句,绑定视图convertView.setTag(vh);} else {vh = (ViewHolder) convertView.getTag();}Glide.with(ctx).load(pclist.get(position).getImage_url()).transform(new GlideCircleTransform(ctx)).error(R.drawable.new_loding_failed_circular).into(vh.iv_addplan);vh.tv_addplan_num.setText(pclist.get(position).getSort_value() + "");vh.tv_addplan_name.setText(pclist.get(position).getPlan_cate_title());return convertView;}
自此,我所学到的方式,都总结完啦,有不对的地方可以留言指教~
这篇关于ButterKnife 懒癌患者的福音的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!