zoukankan      html  css  js  c++  java
  • 模块化开发之butterknife 在 library中使用

    在Android开发中butterknife是一个很好的对资源初始化的工具,它可以使你的代码简洁通俗易懂,同时配合Android ButterKnife Zelezny插件可以让你写代码的速度提升至少数十倍。 。

    单模块化开发使用步骤

    第一步

    在app底下的build.gradle中添加这两个依赖。

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

    第二步

    在activity中如使用即可,别忘了在oncreate方法中添加 ButterKnife.bind(this);

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

    一切顺其自然,一般照着做都不会有问题。

    多模块化开发使用步骤(ibrary中如何使用butterknife.)

    第一步

    在全局build.gradle 配置,特别注意版本,

    不要使用最新的8.5.1 而应该使用8.4.0,不要问我为什么。

    buildscript {
    repositories {
    jcenter()
    mavenCentral()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
    }

    第二步

    在library里正常引入butterknife(这里可以使用最新版本8.5.1)。

    1、在library中build.gradle中引入插件

    apply plugin: 'com.jakewharton.butterknife'

    2、 dependencies 中添加依赖

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

    到此使用前期工作就算做完了,下面介绍在library中如何使用和注意事项。

    butterknife在library activity中的使用和注意事项

    1、用R2代替R findviewid

     @BindView(R2.id.textView)
    TextView textView;
    @BindView(R2.id.button1)
    Button button1;
    @BindView(R2.id.button2)
    Button button2;
    @BindView(R2.id.button3)
    Button button3;
    @BindView(R2.id.image)
    ImageView image;

    2、在click方法中同样使用R2,但是找id的时候使用R。

    @OnClick({R2.id.textView, R2.id.button1, R2.id.button2,R2.id.button3, R2.id.image})
    public void onViewClicked(View view) {
    switch (view.getId()) {
    case R.id.textView:
    break;
    case R.id.button1:
    
    break;
    case R.id.button2:
    break;
    case R.id.button3:
    break;
    case R.id.image:
    break;
    }
    }

    3、特别注意library中switch-case的使用,在library中是不能使用switch- case 找id的,解决方法就是用if-else代替。

      @OnClick({R2.id.textView, R2.id.button1, R2.id.button2, R2.id.button3, R2.id.image})
    public void onViewClicked(View view) {
    int i = view.getId();
    if (i == R.id.textView) {
    } else if (i == R.id.button1) {
    } else if (i == R.id.button2) {
    } else if (i == R.id.button3) {
    } else if (i == R.id.image) {
    }
    }

    注意问题

    当library使用R2时候可会报红,没关系,rebuild 就好了

    强烈建议大家 用插件 Android ButterKnife Zelezny 生成 然后在library中根据每个地方修改成R2。

    关于我

    微信公众号:infree6 或者直接扫码

  • 相关阅读:
    页面笔记
    RestTemplate
    Spring中使用HibernateCallback
    工作中的小零碎
    hibernate核心思想 体系结构(转)
    db2备份和导入单个表操作
    MSB-STRUTS-课堂笔记
    设计模式:策略模式(转)
    java中的匿名内部类总结(转)
    struts2.0中Action的对象生命周期详解!!(转)
  • 原文地址:https://www.cnblogs.com/songjianzaina/p/10382240.html
Copyright © 2011-2022 走看看