[关闭]
@Tyhj 2019-05-30T13:01:16.000000Z 字数 1280 阅读 575

Android常用注解集成

Android


使用方法

Step 1. Add the JitPack repository to your build file

  1. dependencies {
  2. classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
  3. ...
  4. }
  5. ...
  6. allprojects {
  7. repositories {
  8. ...
  9. maven { url 'https://jitpack.io' }
  10. }
  11. }

Step 2. Add the dependency

  1. apply plugin: 'android-aspectjx'
  2. ...
  3. aspectjx {
  4. //排除所有package路径中包含`android.support`的class文件及库(jar文件)
  5. exclude 'android.support'
  6. }
  7. dependencies {
  8. implementation "com.github.tyhjh.Annotation:annotationlibrary:v1.0.4"
  9. annotationProcessor "com.github.tyhjh.Annotation:annotator:v1.0.4"
  10. }

具体使用

@ViewById

初始化控件,在onCreatesetContentView方法后,初始化ViewInjector,然后,被注解的控件只需要变量名和ID一样就可以,在APP模块里面也可以手动添加value值,其他模块不行

  1. protected void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.activity_main);
  4. ViewInjector.injectView(this);
  5. ...
  6. }
  7. @ViewById(value = R.id.txtView)
  8. TextView txtView;
  9. @ViewById
  10. TextView txtView2;

@Click

设置点击事件,也是一样,方法名和ID一样就可以,在APP模块也可以手动配置ID

  1. @Click
  2. void txtView2() {
  3. ...
  4. }
  5. @Click(R.id.txtView)
  6. void txtView() {
  7. ...
  8. }
点击防抖动

新增防抖动功能,使用了@Click注解的按钮默认在200ms内只能点击一次,可以通过设置全局修改,也可以修改单个点击事件的间隔

  1. //全局修改点击间隔,需要尽早设置
  2. AvoidShake.setClickIntervalTime(1000);
  3. //单个设置点击间隔
  4. @Click(interval = 100)
  5. void txtView() {
  6. ...
  7. }

@UiThread

方法在主线程执行,可以添加一个延迟时间,不需要初始化ViewInjector

  1. @UiThread(delay = 1000)
  2. void toast(String msg) {
  3. ...
  4. }

@Background

方法在子线程执行

  1. @Background(delay = 1000)
  2. void backgroud() {
  3. ...
  4. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注