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文件即可一键生成。

你可能感兴趣的:(butterknife使用教程)