1、项目依赖
classpath'com.jakewharton:butterknife-gradle-plugin:8.8.1'
app:
applyplugin:'com.jakewharton.butterknife'
compile'com.jakewharton:butterknife:8.8.1'
annotationProcessor'com.jakewharton:butterknife-compiler:8.8.1'
androidStudio下载插件【Android ButterKnife Zelezny】
2、功能介绍
插件使用
选择需要findViewByID 的元素和需要点击事件的打勾
1、绑定控件
2、绑定资源
3、绑定监听
【单件】@OnClick(R.id.btn) 多个的写法 @OnClick({R.id.name, R.id.name1, R.id.name2})
【长按】@OnLongClick(R.id.btn)
【EditText改变监听】如下:
@OnTextChanged(value = R.id.et_test,callback =OnTextChanged.Callback.BEFORE_TEXT_CHANGED)
@OnTextChanged(value = R.id.et_test,callback = OnTextChanged.Callback.TEXT_CHANGED)
@OnTextChanged(value = R.id.et_test,callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
【OnTouch触摸事件】@OnTouch(R.id.name)
【OnItemClick】@OnItemClick(R.id.mLVItems)
【OnItemLongClick】@OnItemLongClick(R.id.mLVItems)
【OnItemSelected】@OnItemSelected(R.id.mLVItems)
4、可选绑定
在使用@BindView或其他的注解操作符,如果不能找到目标资源,会引发异常,为了防止异常可以添加@Nullable注解
Fragment和Adapter中使用ButterKnife
fragment中的用法
@BindView(R.id.tv)
TextView mTv;
@Override
public view onCreateView(LayoutInflater inflater,ViewGroup container,Bundle saveInstanceState){
View view = inflater.inflater(R.layout.fragment_layout,container,false);
Butterknife.bind(this,view);
return view;
}
Adapter中的用法
关键代码:
class ViewHolder{
@BindView(R.id.tv)
TextView mTv;
public ViewHolder(View view){
@ButterKnife.bind(this,view)
}
}
剩余代码和平常一样调用即可