一. 配置
在model的build.gradle中配置:
//step 1 //添加依赖插件,定义版本号
def AAVersion = '4.4.0'//step 2 //添加依赖包
dependencies { ... compile "org.androidannotations:androidannotations-api:$AAVersion" annotationProcessor "org.androidannotations:androidannotations:$AAVersion" androidTestCompile('com.android.support:support-annotations:26.1.0') { force = true } }//step 3 //project 下build.gradle中配置
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'//step 4 在清单文件AndroidManifest.xml中activity改成activity_
添加完后syns一下。
此时可以添加@EActivity标签,后面加布局,等同于setConyentView("布局"),如图:
再在清单文件中将MainActivity修改为MainActivity_,如图:
再make project编译一下。
至此配置完成。
二. 注解标签
view注解:
@Nullable : 没有返回值
@NonNull : 有返回值
@CheckResult : 该注解是为了检测方法返回值是否是需要使用的
@EActivity : 后面需要跟上一个layout id,来标示该Activity所加载的xml布局,这样原来的onCreate()方法就不用写了
@EFragment : 注解Fragment,后面可跟上一个layout id,绑定布局
@App : Application类的注解,在其他地方调用Application时添加
@Bean : Bean类使用或是自定义的类时添加
@AfterViews : 执行完oncreate后执行
@EView :创建一个继承View的类并用@EView进行标注
@ViewById : 与findViewById作用一致,而且@ViewById后面可以不写控件id,前提是控件变量名要与控件id一致
@Click : 也就是控件的点击事件,而且如果控件ID与方法名一致,后面就不用写控件ID了. 该注解可以单独写,也可以对多个Button合并写
@TextChange : 文本发生变化时的注解
@BeforeTextChange : 文本发生变化前的注解
@AfterTextChange : 文本发生变化后的注解
@EditorAction : EditText被编辑时的注解
资源注解:
@StringRes : 表示参数、变量或者函数返回值应该是一个字符串类型的资源
@ColorInt : 表示参数、变量或者函数返回值应该是一个颜色值而不是颜色资源引用,例如应该是一个 AARRGGBB 的整数值。
@ColorRes : 表示参数、变量或者函数返回值应该是一个 color 类型的资源,而不是颜色值。注意和 ColorInt 区别
@AnimRes : 表示参数、变量或者函数返回值应该是一个 Anim 类型的资源
@DrawableRes : 表示参数、变量或者函数返回值应该是一个 drawable 类型的资源
@DimenRes : 表示参数、变量或者函数返回值应该是一个 dimension 类型的资源
线程注解:
@UiThread
@MainThread
@WorkerThread
@BinderThread
其中@UiThread 和 @MainThread 在大部分的使用场景中,是可以替换使用的,如果一个类中的所有方法都在同一个线程中执行,就直接可以在类本身进行注解;
值约束注解:
@FloatRange :需要传的参数是一个Float或者Double类型,设置范围为0.0~1.0
@IntRange : 对int值进行约束限定,范围限定为0~255
@Size : ①show(@Size(max=10) String name):字符串限制,字符串name长度最长为10
②show(@Size(2) int[] name):数组元素限制,数组name元素最多为2
权限注解:
@RequiresPermission(权限): 在java 代码中声明权限
@RequiresPermission(anyOf = {权限,权限}): 在java 代码中声明要其中一个权限
@RequiresPermission(allOf = {权限,权限}): 在java 代码中声明要全部权限