2025年使用ButterKnife+Zelezny快速创建View对象并绑定控件

使用ButterKnife+Zelezny快速创建View对象并绑定控件引入架包 1 使用 androidStudi File gt Project Structure gt 选择自己的 model APP gt Dependencies gt Library dependency 搜索 butterknife gt install 等待安装完成提示重启即可

大家好,我是讯享网,很高兴认识大家。

引入架包:
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); } 
小讯
上一篇 2025-03-08 20:58
下一篇 2025-03-10 16:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/39366.html