引入架包:
1、使用androidStudio:File->Project Structure->选择自己的model(APP)->Dependencies->+Library dependency 搜索butterknife->install 等待安装完成提示重启即可。
这种引入方法有可能报错:
Error:(30, 0) Gradle DSL method not found: ‘annotationProcessor()’
Possible causes:
- The project ‘RetrofitRxjavaTest’ may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file- The build file may be missing a Gradle plugin.
Apply Gradle plugin也有可能是点击事件无反应:
解决办法:在onCreate中重新调用监听
例:
@OnClick(R.id.bt) void submit(){
UToasts.showShort(this,"监听成功");
}
在OnCreate 中重新调用该方法
submit();
2、在project 的build.gredle 文件中的dependencies标签下添加:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
并在module的build.gredle 文件中添加:
apply plugin: 'com.neenbedankt.android-apt'
并在module的build.gredle 文件中的dependencies标签中添加:
compile 'com.jakewharton:butterknife:8.2.1'
可以
apt 'com.jakewharton:butterknife-compiler:8.2.1'
代码:
// project中的build.gredle dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } //model(app)中的build.gredle apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' ...... dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' compile 'com.jakewharton:butterknife:8.2.1' apt 'com.jakewharton:butterknife-compiler:8.2.1' }
讯享网
建议使用第二种方法
Zelezny插件安装
setting->Plugins->搜索Zelezny更新即可。
使用方法:
新建一个activity后,鼠标光标放在activity_main.xml上
右键Generate->Generate ButterKnife Injections勾选需要的控件即可
或者直接按住Alt+insert->Generate ButterKnife Injections
监听绑定:
讯享网 // 单个监听bt @OnClick(R.id.bt) void submit() { UToasts.showShort(this, "监听成功"); } // 多个监听 @OnClick({R.id.et, R.id.tv}) void submix(View view) { switch (view.getId()) { case R.id.et: UToasts.showShort(this, "输入框被点击了"); break; case R.id.tv: UToasts.showShort(this, "tv被点击了"); break; } }
适配器Adapter中绑定:
class ViewHolder { @Bind(R.id.tv) TextView tv; public ViewHolder(View view) { ButterKnife.bind(this, view); }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/39366.html