刚刚学习Android,也不知道算不算已经入门!但是总感觉自己没有什么提高,所以就把一些学习内容写一遍下来。

 今天接触了ButterKnife这个第三方框架 GitHub地址:https://github.com/JakeWharton/butterknife

 注:7.0.1之后的版本将已将@InjectView --->@Bind  Butterknife.inject()--->ButterKnife.bind()

  ButterKnife不通过反射,而是通过预编译的方式实现,关键就是省事!入正题:

1   @Bind(R.id.txt_title)
2     TextView txt_title;
3     @Override
4     protected void onCreate(Bundle savedInstanceState) {
5         super.onCreate(savedInstanceState);
6         setContentView(R.layout.activity_main);
7         ButterKnife.bind(this);
8         txt_title.setText("hello world");
9     }

 

监听注入:

1   @OnClick(R.id.txt_title)
2     public  void chage(TextView view){
3         Log.i("com.alger","hello ButterKnife");
4     }

还有Fragment注入、ViewHolder注入都大差不多

ButterKnife.bind(this,view)这个重载函数

 注意 在Fragment、ViewHolder注入时千万不能用ButterKnife.bind(view),报错,这个坑了我好久

最新版本8.2.1,发现gradle光写

compile 'com.jakewharton:butterknife:8.2.1’,点击时没什么效果,
需加入
项目gradle :
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

模块gradle:
apply plugin: 'com.neenbedankt.android-apt'

apt 'com.jakewharton:butterknife-compiler:8.2.1'

有机会需要去学习一下apt
posted on 2016-02-26 11:16  向着大牛奋斗  阅读(312)  评论(0编辑  收藏  举报