首页投稿(暂停使用,暂停投稿)@IT·互联网Android开发经验谈

Android开源项目-ButterKnife

2016-07-19  本文已影响567人  Tsy远

ButterKnife是一个依赖注入开源框架,主要减轻绑定资源id的代码

1 相关文档

官方文档:
http://jakewharton.github.io/butterknife/

推荐的使用教程:
http://leoray.leanote.com/post/butterknife

2 如何使用

2.1 引入开源库

注意:最新的8.2.1版本不仅需要引入

compile 'com.jakewharton:butterknife:8.2.1'

完整的gradel内的引用应该是:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

apply plugin: 'com.neenbedankt.android-apt'

dependencies {
    ...

    compile 'com.jakewharton:butterknife:8.2.1'
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
}

需要引入apt插件。

2.2 使用例子

ButterKnife的使用非常简单,可以减少以前findViewById的代码和监听事件的代码。

原来:

    private Button btn;
    ...
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "Btn Clicked", Toast.LENGTH_SHORT).show();
            }
        });
    }

使用ButterKnife:

    @BindView(R.id.title) Button btn;
    ...
    
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        // TODO Use fields...
    }

注意 Button btn 前面不可以有修饰private static

除此之外,还可以在fragment、adapter等使用,还可以简化设置监听函数。更多用法在官方文档中描述很详细。

3 总结

  1. 整个开源库很小,导出后比较只多了10k。非常适合使用减少activity中的代码,增加可读性
  2. 其实ButterKnife并不是真正的依赖注入框架,dagger才是,ButterKnife只是简化了资源绑定的过程
  3. 是个不错的使用在项目中的开源框架。强烈推荐!

结尾

更多文章关注我的公众号


我的公众号
上一篇下一篇

猜你喜欢

热点阅读