butterknife使用教程

本文是基于Butterknife8.5.1版本的,主要是自己留存。

Butterknife的简介

ButterKnife是通过注解的方式进行Android控件和方法的绑定,对于控件而言,无需通过findViewById来进行实例化,而是通过注解。对于一些回调方法,比如按钮的点击事件,无需通过绑定监听器,也可以通过注解的方式来完成。通过注解的方式对控件和回调方法进行绑定,可以有效的减少重复性的工作,简化代码,而将精力用于功能的实现。最新版本是8.5.1,以下内容都是都是基于8.5.1版本。
ButterKnife Github主页:
https://github.com/JakeWharton/butterknife

在AndroidStudio中如何配置ButterKnife?

在project的build.gradle中的配置:

buildscript {
  repositories {
    mavenCentral()
   }
  dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
  }
}

在module的build.gradle中配置:

apply plugin: 'com.jakewharton.butterknife'

并且添加依赖关系

dependencies {
  compile 'com.jakewharton:butterknife:8.5.1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}

在AndroidStudio的使用方式

public class MainActivity extends AppCompatActivity {    
    //通过BindView标注对控件进行绑定,相当于findViewById    
    @BindView(R.id.et_username)    
    EditText mUsernameEt;    
    @BindView(R.id.et_pwd)    
    EditText mPwdEt;    
    @BindView(R.id.btn_login)    
    Button mLoginBtn;    
    @BindView(R.id.btn_cancel)    
    Button mCancelBtn;    

    @Override    
    protected void onCreate(Bundle savedInstanceState) {            
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_main);        
        //绑定目标Activity        
        ButterKnife.bind(MainActivity.this);        
        //通过BindView标注了的控件可以直接使用            
        mUsernameEt.setText("user name");
    }

    /**     
    * 绑定Button的回调方法,注解要与Button的回调方法名onClick相同,但是注解中OnClick第一个字母大写     
    * Button绑定的方法名可以自己任意取,比如与登录相关的doLogin()     
    */    
    @OnClick({R.id.btn_login,R.id.btn_cancel})
    public  void doLogin(View v){
        switch (v.getId()){
            case R.id.btn_login:                
                Toast.makeText(getApplicationContext(),"login click",Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_cancel:
                Toast.makeText(getApplicationContext(),"cancel click",Toast.LENGTH_SHORT).show();;
                break;
            default:
                break;
        }
    }
}

主要是ButterKnife.bind(MainActivity.this);必须注册,如果想一键生成代码需要在Plugins中加载ButterKnife插件,加载完成须重启AS。右键当前类的xml文件即可一键生成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ButterKnife简介 ButterKnife是通过注解的方式进行Android控件和方法的绑定,对于控件...
    启才阅读 4,840评论 5 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,909评论 25 708
  • 大多数的教程都太老,或者也不知道从哪里抄写的文章。导致我使用ButterKnife时,每次都不其作用,最后才发现配...
    小酷哥阅读 300评论 0 0
  • 共通 设备模块 参数相关 产品相关 设备相关 终端用户相关 token相关 Mqtt相关 超级用户相关 终端用户模...
    soszrg阅读 328评论 0 0
  • 习惯了晚睡,但没有习惯楼下的半夜三更还在推杯换盏,嬉笑打闹。服了! 到这里也有个十几年了,这宝地面朝大海,四季花开...
    平静123阅读 284评论 2 2