前段时间看源码,其中没有findViewById,上面看了一下,用的@InJectView(他用的版本比较老,现在是@BindView),之前只是感觉今年好多框架升级后使用方法之类的都变了,而百度到的资料还是很老的,有个大牛说,别用百度了,用Google吧,我深以为然。
转到正题,说一下BufferKnife以及它的相关插件(以下用的是android studio,如果你没有,也假设你有)
目前的最新版是8.4.0
1、gradle配置
compile 'com.jakewharton:butterknife:8.4.0'
2、初始化
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
3、绑定View
@BindView(R.id.editText)
EditText editText;
@BindView(R.id.button1)
Button button1;
@BindView(R.id.button2)
Button button2;
@BindView(R.id.textView)
TextView textView;
@BindView(R.id.iv)
ImageView iv;
4、多View绑定
@BindViews({R.id.button1,R.id.button2})
List<View> buttons;
5、点击事件
onClick的名字是自己起的,返回值也可以改变,参数可有可无,也可以只有一个View
@OnClick({R.id.button1, R.id.button2})
public void onClick(View view) {
switch (view.getId()) {
case R.id.button1:
break;
case R.id.button2:
break;
}
}
6、相关插件
下面说个插件,和他绑定之后,可以偷懒很多
ButterKnife Zelezny,就是它
setting-Plugins-输入他的名字搜索-安装-重启studio
然后使用的时候有很多人不知道咋用,我说一下
光标放到layout上,然后Generate - Alt+Insert - Generate BufferKnife Injections
好了,大功告成!