众所周知,Buffer knife是一个很棒的开源库。
他的好处在哪里呢?
现如今他已经更新到了8.4.0版本了。
想想我们之前是如何给XML中的控件添加一个引用和设置监听事件的,没错就是很多个FindViewByID,然后类型强制转换。特别是在添加监听事件的时候,还需要实现接口,实现方法,个人感觉是很浪费时间的。然而当你使用了butterKnife之后,你之前所做的工作都将会得到简化。
假设我们有一个Button,有一个Text View,我们想要实现这样的一个效果:当按钮被电击的时候,text view的文字会被修改成为:“按钮已经被点击了”。
我们以前会这么写:
MainActivity:
package com.example.gpwner.butterknife;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button= (Button) findViewById(R.id.button);
textView= (TextView) findViewById(R.id.textView);
button.setOnClickListener(this);
}
@Override
public void onClick(View view) {
textView.setText("按钮被点击了");
}
}
然而,我们现在只要这么写就可以了:
package com.example.gpwner.butterknife;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.button)
Button button;
@BindView(R.id.textView)
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick(R.id.button)
public void onClick() {
Toast.makeText(MainActivity.this,"按钮被点击了",Toast.LENGTH_SHORT).show();
textView.setText("按钮被点击了");
}
}
这样看的话,两种方法好像没多大的区别,但是当你的控件变得很多的时候,效果就会好很多了,如果你使用Butterknife的话,你的代码的可读性会增强了好多的。当然这个库的使用并不是只能做这点事的,
这里我就不详细的说了,这里有一篇写得很到的文章,http://www.jianshu.com/p/9ad21e548b69
如果你的英文足够好的话你也可以看这个库的作者做的介绍:http://jakewharton.github.io/butterknife/
那在自己的项目当中使用这个呢?
第一步,File->Project Structure
第二步,选择App,dependencies
第三步,选择Library dependency
第四步,在搜索框输入”butterknife“,
按下回车
选中这两项,添加到项目,然后点击OK就可以了
(看不懂的可以参考我的这篇博客:http://blog.csdn.net/gpwner/article/details/52681381)
至此,你已经可以在你的项目当中使用Butter knife8.4.0了,如果你觉得还想更加高效那么你还可以在你的Android Studio中添加这个插件:Android Butterknife Zelezny,其高效之处我就不介绍了,总之,如果你使用了Butterknife,那么这个插件会让你更爽。它的安装和使用教程,网上很多,这里我就不一一介绍了!