介绍
在开发过程中,我们总是会写大量的findViewById和点击事件,像初始view、设置view监听这样简单而重复的操作让人觉得特别麻烦。ButterKnife大大简化了这些操作
优势
1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2.方便的处理Adapter里的ViewHolder绑定问题
3.运行时不会影响APP效率,使用配置方便
4.代码清晰,可读性强
源码地址,说明文档,API地址
源码地址:https://github.com/JakeWharton/butterknife
英文使用说明地址:http://jakewharton.github.io/butterknife/
API文档地址:http://jakewharton.github.io/butterknife/javadoc/
项目配置
在module的build.gradle 文件中的dependencies标签中添加代码如下(导入库的依赖)
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
代码中简单使用
xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
/>
</RelativeLayout>
java
public class MainActivity extends Activity {
@BindView(R.id.button) Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getBaseContext(),"Test",Toast.LENGTH_SHORT).show();
}
});
}
}
关键代码其实就两句话
绑定View
@BindView(R.id.button) Button button;
绑定ButterKnife
ButterKnife.bind(this);
注意
1、由于每次使用都要在Activity中的onCreate绑定Activity,因此可以在项目的BaseActivity中完成绑定,子类继承即可
2、必须在setContentView();之后绑定
这样ButterKnife的最基本使用你已经掌握了
绑定点击事件
@OnClick({R.id.ll_product_name, R.id.ll_product_lilv})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.ll_product_name:
System.out.print("我是点击事件1");
break;
case R.id.ll_product_lilv:
System.out.print("我是点击事件2");
break;
}