您的位置:首页 > 移动开发 > Android开发

Framework of Android:Butterknife

2015-10-06 22:34 543 查看
有没有被重复而又繁琐的findViewById()和各种点击事件所困扰,这些代码明显显得过于冗余和繁琐,有没有什么好的办法避免它们呢?答案是肯定的,这就是这里要介绍的ButterKnife,从名字上来,它的确是一把好刀。

要使用它们还是很方便的,直接在gradle里加入dependency就好了。

官方的使用如下(如果是老版本的会是@injectView):

class ExampleActivity extends Activity {
@Bind(R.id.title) TextView title;
@Bind(R.id.subtitle) TextView subtitle;
@Bind(R.id.footer) TextView footer;

@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);//初始化
// TODO Use fields...
}

@Override public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
}
这样就可以代替findViewById来初始化各种控件了。

当然你要同时声明多个时可以如下操作:

@Bind({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;
控件的点击监听也可以注入
@OnClick(R.id.submit)
public void submit() {
// TODO submit data to server...
}
@OnClick(R.id.submit)
public void sayHi(Button button) {
button.setText("Hello!");
}
当然不止这些用法了,详细的看官网吧 http://jakewharton.github.io/butterknife/
对了最后在介绍个配套的plugins:Android Butterknife Zelezny 有了它就可以自动添加@Bind了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: