(1)ButterKnife是什么?
在开发过程中,我们总是会写大量的findViewById和点击事件,像初始view、
设置view监听这样简单而重复的操作让人觉得特别麻烦,当然不会偷懒的程序员不是好程序员,
自然也出现了相应的解决方案--依赖注入。而ButterKnife则是依赖注入中相对简单易懂的很不错的开源框架,
(其实ButterKnife也不算严格意义上的依赖注入,后面文章中会做分析)。但ButterKnife作为JakeWharton
大神写的注解框架被广泛应用于android开发中,自然也有它的过人之处。下面对它的使用过程进行描述。
(2)ButterKnife 有哪些优势?
它的具体优势:
1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.运行时不会影响APP效率,使用配置方便
4.代码清晰,可读性强
(3)环境配置:
一:因为要使用Androidannotations注解,需要给eclipse配置Annotation Processin
配置方法:
Help -> Install New Sofwere -> Work with下拉菜单选择“Juno - http://download.eclipse.org/releases/juno”->
然后在下面的选择框中选择Programming Language下的Eclipse Java Development Tools,然后Next,下载需要一段时间,
下载完之后重启Eclipse,Annotation Processin就配置成功了。
二:ButterKnife配置:
项目工程 -> Properties -> Java Compiler -> Annation Processin 下的Factory Path ->
勾选右侧最上边的enable project specific settings ->Add External Jars —>将butterknife Jar包导进去即可。
三:
@Bind(R.id.button_01) Button button_01; == (Button)findViewById(R.id.button_01)
@Bind(R.id.button_02) Button button_02;
@Bind(R.id.textview_01) TextView textView_01;
@Bind(R.id.textview_02) TextView textView_02;
为button添加监听事件
@OnClick(R.id.button_01)
public void play(Button button){
逻辑代码
}
为多个button添加监听事件
@OnClick({R.id.button_01,R.id.button_02})
public void play(Button button){
逻辑代码
}
//批量设置button背景色为红色
// ButterKnife.Action<View> ChangeColors =new ButterKnife.Action<View>() {
// public void apply(View arg0, int arg1) {
// arg0.setBackgroundColor(Color.RED);
// };
// };
// ButterKnife.apply(buttonslist, ChangeColors) ;
//批量设置背景不同颜色
ButterKnife.Setter<View, List<Integer>> ChangeColor = new ButterKnife.Setter<View, List<Integer>>() {
@Override
public void set(View view, List<Integer> arg1, int arg2) {
view.setBackgroundColor(arg1.get(arg2)) ;
}
};
List<Integer> colorList = new ArrayList<Integer>();
colorList.add(Color.BLUE);
colorList.add(Color.CYAN);
colorList.add(Color.CYAN);
colorList.add(Color.GREEN);
colorList.add(Color.BLUE);
colorList.add(Color.RED);
colorList.add(Color.WHITE);
colorList.add(Color.YELLOW);
colorList.add(Color.GREEN);
colorList.add(Color.LTGRAY);
ButterKnife.apply(buttonslist, ChangeColor,colorList);
在开发过程中,我们总是会写大量的findViewById和点击事件,像初始view、
设置view监听这样简单而重复的操作让人觉得特别麻烦,当然不会偷懒的程序员不是好程序员,
自然也出现了相应的解决方案--依赖注入。而ButterKnife则是依赖注入中相对简单易懂的很不错的开源框架,
(其实ButterKnife也不算严格意义上的依赖注入,后面文章中会做分析)。但ButterKnife作为JakeWharton
大神写的注解框架被广泛应用于android开发中,自然也有它的过人之处。下面对它的使用过程进行描述。
(2)ButterKnife 有哪些优势?
它的具体优势:
1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.运行时不会影响APP效率,使用配置方便
4.代码清晰,可读性强
(3)环境配置:
一:因为要使用Androidannotations注解,需要给eclipse配置Annotation Processin
配置方法:
Help -> Install New Sofwere -> Work with下拉菜单选择“Juno - http://download.eclipse.org/releases/juno”->
然后在下面的选择框中选择Programming Language下的Eclipse Java Development Tools,然后Next,下载需要一段时间,
下载完之后重启Eclipse,Annotation Processin就配置成功了。
二:ButterKnife配置:
项目工程 -> Properties -> Java Compiler -> Annation Processin 下的Factory Path ->
勾选右侧最上边的enable project specific settings ->Add External Jars —>将butterknife Jar包导进去即可。
三:
@Bind(R.id.button_01) Button button_01; == (Button)findViewById(R.id.button_01)
@Bind(R.id.button_02) Button button_02;
@Bind(R.id.textview_01) TextView textView_01;
@Bind(R.id.textview_02) TextView textView_02;
为button添加监听事件
@OnClick(R.id.button_01)
public void play(Button button){
逻辑代码
}
为多个button添加监听事件
@OnClick({R.id.button_01,R.id.button_02})
public void play(Button button){
逻辑代码
}
//批量设置button背景色为红色
// ButterKnife.Action<View> ChangeColors =new ButterKnife.Action<View>() {
// public void apply(View arg0, int arg1) {
// arg0.setBackgroundColor(Color.RED);
// };
// };
// ButterKnife.apply(buttonslist, ChangeColors) ;
//批量设置背景不同颜色
ButterKnife.Setter<View, List<Integer>> ChangeColor = new ButterKnife.Setter<View, List<Integer>>() {
@Override
public void set(View view, List<Integer> arg1, int arg2) {
view.setBackgroundColor(arg1.get(arg2)) ;
}
};
List<Integer> colorList = new ArrayList<Integer>();
colorList.add(Color.BLUE);
colorList.add(Color.CYAN);
colorList.add(Color.CYAN);
colorList.add(Color.GREEN);
colorList.add(Color.BLUE);
colorList.add(Color.RED);
colorList.add(Color.WHITE);
colorList.add(Color.YELLOW);
colorList.add(Color.GREEN);
colorList.add(Color.LTGRAY);
ButterKnife.apply(buttonslist, ChangeColor,colorList);