【GT-安卓应用开发之ButterKnife使用】

前言:第一次接触到ButterKnife还是在两年前,当时我还是使用Eclipse和MyEclipse进行JAVA后台的开发(转安卓仅仅出于个人兴趣),利用业余时间学习安卓开发并做一些简单的小程序,findViewById是我经常使用的一个方法。一次偶然的机会到北京培训,与安卓开发同事交流,并在获得他的允许后查看了他的代码。瞅了半天,竟然没有找到findViewById,却有一些@BindView之类的代码,虽然之前也尝试过对findViewById进行封装,但是总是感觉没有那么简洁美观。这次经历,让我开始认识到了自己对于安卓开发是多么的业余。。。

           好了,说了这么多废话之后就要进入正题了,首先配置一下ButterKnife环境:

           第一步,在Project的build.gradle中添加依赖,代码如下:

           classpath 'com.android.tools.build:gradle:2.3.3'

           classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'

           第二步,在app的build.gradle中添加依赖:

           compile 'com.jakewharton:butterknife:8.8.1'

           annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

           第三步,使用:

           在这里,我们利用@BindView获得一个TextView对象并修改其的值,以及添加点击事件

           代码如下:

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.kn_tv)
    TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        tv.setText("xxx");
    }
    @OnClick({R.id.kn_tv})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.kn_tv:
                Toast.makeText(this,"Click",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

           使用ButterKnife虽然方便,但是有以下几个注意事项:

         1、ButterKnife.bind(this)这句代码必须在setContentView之后才可以使用,并且在非Activity中绑定需要ButterKnife.bind(this,view)其中this不可以换成getActivity等

                   2、在Activity中绑定后不需要手动解绑,但是在Fragment中绑定后必须在销毁的时候解绑

                   3、不论是@BindView还是@OnClick等注解,都需要注意id、string等必须是正确存在的

                   4、使用ButterKnife需要提前安装好插件,方法是File—Settings—搜索Zelezny找到ButterKnife插件下载并安装—安装完成后重启AS

                   5、像代码中一样。@BindView对应的控件不可以使用public、private、static等修饰词

        

猜你喜欢

转载自blog.csdn.net/qq_17433217/article/details/81067507
今日推荐