最近做新项目,想起给项目加注解,玩玩新东西,过程记录一下
先安装插件ButterKnife
File-->Setting-->Plugins:搜索插件ButterKnife,安装会重启
然后配置library
看看上面的版本是8.2.1的,然后我改成8。0.1了,app的build.gradle的顶部配置
apply plugin: 'com.neenbedankt.android-apt'
在dependencies里改为:compile 'com.jakewharton:butterknife:8.0.1' apt 'com.jakewharton:butterknife-compiler:8.0.1'clear一下再
最后在外面一层的build.gradle里面buildscript-->dependencies{}里面加上:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
如下图所示:
使用:在activity_main.xml里面给textView加上id,在MainActivity.java里面选择布局activity_main,右键选择generate..
下一步
好了,然后点击confirm,就添加好了,运行效果如下图:
终于不再写findViewById了,看着是比较清爽,别的功能还没研究,记录一下,哈哈
项目资源下载:http://download.csdn.net/detail/pkandroid/9580628
--------------------------2016年9月26日10:29:11-----------------------------------
最新版本是8.4.0
前面的不变,在app的build.gradle
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') //butterknife 注解 配置参考:http://blog.csdn.net/pkandroid/article/details/51959548 apt 'com.jakewharton:butterknife-compiler:8.4.0' compile 'com.jakewharton:butterknife:8.4.0' androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.0' testCompile 'junit:junit:4.12' //volley compile 'com.navercorp.volleyextensions:volley-views:2.0.1' }注意:如果在dependencies的其他配置就会报错,配置在前面就会没事
-------------------------------------2017年3月7日17:33:03---------------------------------------------
最新版本是8.5.1了
-------------------------------------2017年8月3日10:08:04---------------------------------------------最新版本://注解库 compile 'com.jakewharton:butterknife:8.7.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'另外在Adapter中使用,右键生成后需要在onCreateViewHolder中初始化一下,否则会报空指针异常
@Override public MyBluetoothViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (mContext == null) mContext = parent.getContext(); View view = LayoutInflater.from(mContext).inflate(R.layout.item_layout_bluetooth, parent, false); ButterKnife.bind(this,view); return new MyBluetoothViewHolder(view); }