项目地址:https://github.com/JakeWharton/butterknife
每一个程序员都想用最短的时间,最少的精力开发应用,那么在这我给大家介绍一下一个比较简单实用的注入框架ButterKnife。如果你在AS中依赖了该项目,写项目的时候,那么就不必写大量的findViewById()和setonclicktListener()了。
项目配置
添加依赖
dependencies {
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
把插件添加到buildscript
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
}
}
在module里应用
apply plugin: 'com.android.library'
apply plugin: 'com.jakewharton.butterknife'
控件实例化
以前的写法
mTextView1 = (TextView) findViewById(R.id.butter_text_view_1);
现在的写法
class ExampleActivity extends Activity {
@BindView(R.id.user) EditText username;
@BindView(R.id.pass) EditText password;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
// TODO Use fields...
}
}
添加监听
以前的写法
mTextView1.setonclicktListener(this);
现在的写法
class ExampleActivity extends Activity {
@OnClick(R.id.submit) void submit() {
// TODO
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
}
}
还可以添加多个监听
class ExampleActivity extends Activity {
@OnClick({[R.id.submit, R.id.loginBtn]}) void submit() {
switch(v.getId()) {
case R.id.submit:
// TODO 按钮 submit 触发
break;
case R.id.loginBtn:
// TODO 按钮 loginBtn触发
break;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.bind(this);
// TODO Use fields...
}
}
总结
BufferKnife比AndroidAnnotations简单,易理解,上手快,赶快get吧