美文网首页
ButterKnife 注解的使用

ButterKnife 注解的使用

作者: OriginMonkey | 来源:发表于2019-03-21 15:22 被阅读0次

    介绍:

    用于Android Views的字段和方法的绑定,它使用注解的方式为你生成代码样板

    • 通过在字段上使用@BindView来消除findViewById调用
    • 将列表或数组中的多个视图分组。立即使用actions、setters或properties对它们进行操作
    • 通过使用@OnClick和其他注解方法,消除监听器的匿名内部类
    • 通过在字段上使用资源注解来消除资源查找

    eg:

    class ExampleActivity extends Activity {
      @BindView(R.id.user)
      EditText username;
      @BindView(R.id.pass)
      EditText password;
      @BindString(R.string.login_error)
      String loginErrorMessage;
      @OnClick(R.id.submit)
      void submit() {
        // TODO call server...
      }
    
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_activity);
        ButterKnife.bind(this);
        // TODO Use fields...
      }
    }
    

    减少findViewById、setOnclickListener方法的编写
    ButterKnife 是一个专注于Android系统的View、Resource、Action注入框架
    gitHub:
    https://github.com/JakeWharton/butterknife/

    使用:

    1、首先在你项目的主build.gradle中添加

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

    2、在你项目App的build.gradle中添加

    dependencies {
      implementation 'com.jakewharton:butterknife:10.1.0'
      annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
    }
    

    3、在你项目App的build.gradle中添加

    apply plugin: 'com.jakewharton.butterknife'
    

    4、最好在BaseActivity的onCreate方法中做初始化,在onDestory中取消

    private Unbinder unbinder;
    
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        unbinder = ButterKnife.bind(this);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbinder.unbind();
    }
    

    注意:

    注意:要在使用Butterknife注解地方用R2替换R

    eg:
    
    class ExampleActivity extends Activity {
      @BindView(R2.id.user)
      EditText username;
      @BindView(R2.id.pass)
      EditText password;
    ...
    }
    

    相关文章

      网友评论

          本文标题:ButterKnife 注解的使用

          本文链接:https://www.haomeiwen.com/subject/iatcvqtx.html