模块化开发之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 或者直接扫码