ButterKnife是一个依托Java的注解机制来实现辅助代码生成的框架,让你可以省去findViewById这些经常出现的重复性代码,以及setOnClickListener此类的监听器引入,通过注释是程序更加简洁,以下是该开源框架的github地址:
https://github.com/JakeWharton/butterknife
1.引入包以及配置
由于引入最新的10.1.0会出现Androidx和Android support冲突。所以在这我引入的是ButterKnife9.0.0版本。如果要引入10.1.0,那么冲突的解决方法可以参考一下全篇第二点。
引入步骤:
(1)在app/build.gradle下
android {
.......
......
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
..................
..............
implementation 'com.jakewharton:butterknife:9.0.0-rc1'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
}
(2)在build.gradle下
buildscript {
repositories {
mavenCentral()
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
(2)在build.gradle下
2.引入包以及配置后可能会出现Androidx和Android support库不能共存
解决方法可参考这边博文:https://www.jianshu.com/p/f7a7a8765294?tdsourcetag=s_pctim_aiomsg 或者 https://blog.youkuaiyun.com/Night_X/article/details/86653715
3.简单使用方法
这里简单使用@BindView和@OnClick
在定义的Activity中绑定View后,使用ButterKnife.bind()方法
ButterKnife.bind(this);
initView();
在指定组件前使用注解
@BindView(R.id.phone)private InputView mInputPhone;
@OnClick(R.id.bt_commit)
public void onCommitClick(View view){
//获取手机号
String phone = mInputPhone.getInputStr();
//获取密码
String password = mInputPassword.getInputStr();
// if(UserUtils.validateLogin(this,phone,password)){
// //执行网络传输验证是否手机号密码匹配
// }
//测试输入合法性
if(!UserUtils.validateLogin(this,phone,password)){
return;
}
//跳转到应用主页
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
finish();
}