首页创建Android studio项目
在项目的build.gradle中添加如下代码(如此简单)
buildscript {
repositories {
mavenCentral()
}
dependencies {
// replace with the current version of the Android plugin
classpath ‘com.android.tools.build:gradle:1.2.3’
// the latest version of the android-apt plugin
classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.4’
}
}
repositories {
mavenCentral()
mavenLocal()
}
apply plugin: ‘com.android.application’
apply plugin: ‘android-apt’
def AAVersion = ‘3.3.2’//这个是Annotations的版本号,这个可以去Annotations官网查看,也可以在Android studio中Jcenter或者mavenCentral中查找最新版本号
dependencies {
compile fileTree(include: [‘*.jar’], dir: ‘libs’)
compile ‘com.android.support:appcompat-v7:22.2.0’
apt “org.androidannotations:androidannotations:AAVersion”
compile “org.androidannotations:androidannotations-api:AAVersion”
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
// if you have multiple outputs (when using splits), you may want to have other index than 0
// you should set your package name here if you are using different application IDs
// resourcePackageName “your.package.name”
// You can set optional annotation processing options here, like these commented options:
// logLevel ‘INFO’
// logFile ‘/var/log/aa.log’
}
}
到此配置完成,android studio就可以使用Annotations框架了。
这要注意:所有的方法和变量在使用注解时不能声明为 private,在Android minfaset文件中配置Activity、service等名称的后面添加上“_”(下划线,这个是框架编译时使用)
接下来就是使用注解了。
这里给列出支持的注解
Enhanced components
- @EActivity{.internal.present}
- @EApplication{.internal.present}
- @EBean{.internal.present}
- @EFragment{.internal.present}
- @EProvider{.internal.present}
- @EReceiver{.internal.present}
- @EIntentService{.internal.present}
- @EService{.internal.present}
- @EView{.internal.present}
- @EViewGroup{.internal.present}
{#user-content-injection.anchor}Injection
- @AfterExtras{.internal.present}
- @AfterInject{.internal.present}
- @AfterViews{.internal.present}
- @App{.internal.present}
- @Bean{.internal.present}
- @Extra{.internal.present}
- @FragmentArg{.internal.present}
- @FragmentById{.internal.present}
- @FragmentByTag{.internal.present}
- @FromHtml{.internal.present}
- @HttpsClient{.internal.present}
- @NonConfigurationInstance{.internal.present}
- @RootContext{.internal.present}
- @SystemService{.internal.present}
- @ViewById{.internal.present}
- @ViewsById{.internal.present}
{#user-content-event-binding.anchor}Event binding
- @TextChange{.internal.present}
- @AfterTextChange{.internal.present}
- @BeforeTextChange{.internal.present}
- @EditorAction{.internal.present}
- @FocusChange{.internal.present}
- @CheckedChange{.internal.present}
- @Touch{.internal.present}
- @Click{.internal.present}
- @LongClick{.internal.present}
- @ItemClick{.internal.present}
- @ItemLongClick{.internal.present}
- @ItemSelect{.internal.present}
- @OptionsItem{.internal.present}
- @SeekBarProgressChange{.internal.present}
- @SeekBarTouchStart{.internal.present}
- @SeekBarTouchStop{.internal.present}
{#user-content-threading.anchor}Threading
- @Background{.internal.present}
- @UiThread{.internal.present}
- @SupposeBackground{.internal.present}
- @SupposeUiThread{.internal.present}
{#user-content-misc.anchor}Misc
- @InstanceState{.internal.present}
- @WindowFeature{.internal.present}
- @Fullscreen{.internal.present}
- @CustomTitle{.internal.present}
- @InjectMenu{.internal.present}
- @OptionsMenu{.internal.present}
- @OptionsMenuItem{.internal.present}
- @OrmLiteDao{.internal.present}
- @RoboGuice{.internal.present}
- @Trace{.internal.present}
- @Transactional{.internal.present}
- @OnActivityResult{.internal.present}
- @OnActivityResult.Extra{.internal.present}
- @HierarchyViewerSupport{.internal.present}
- @ServiceAction{.internal.present}
- @Receiver{.internal.present}
- @Receiver.Extra{.internal.present}
- @ReceiverAction{.internal.present}
- @ReceiverAction.Extra{.internal.present}
- @IgnoredWhenDetached{.internal.present}
- @WakeLock{.internal.present}
{#user-content-resource-injection.anchor}Resource injection
- @StringRes{.internal.present}
- @AnimationRes{.internal.present}
- @ColorRes{.internal.present}
- @DimensionPixelOffsetRes{.internal.present}
- @DimensionPixelSizeRes{.internal.present}
- @DimensionRes{.internal.present}
- @BooleanRes{.internal.present}
- @ColorStateListRes{.internal.present}
- @DrawableRes{.internal.present}
- @IntArrayRes{.internal.present}
- @IntegerRes{.internal.present}
- @LayoutRes{.internal.present}
- @MovieRes{.internal.present}
- @StringArrayRes{.internal.present}
- @TextArrayRes{.internal.present}
- @TextRes{.internal.present}
- @HtmlRes{.internal.present}
{#user-content-rest-api.anchor}Rest API
- @Rest{.internal.present}
- @RestService{.internal.present}
- @Get{.internal.present}
- @Post{.internal.present}
- @Put{.internal.present}
- @Delete{.internal.present}
- @Options{.internal.present}
- @Head{.internal.present}
- @Accept{.internal.present}
- @RequiresHeader{.internal.present}
- @RequiresCookie{.internal.present}
- @RequiresCookieInUrl{.internal.present}
- @RequiresAuthentication{.internal.present}
- @SetsCookie{.internal.present}
- @RequiresCookieInUrl{.internal.present}
{#user-content-typesafe-sharedpreferences.anchor}Typesafe SharedPreferences
- @DefaultBoolean{.internal.present}
- @DefaultFloat{.internal.present}
- @DefaultInt{.internal.present}
- @DefaultLong{.internal.present}
- @DefaultString{.internal.present}
- @DefaultStringSet{.internal.present}
- @DefaultRes{.internal.present}
- @Pref{.internal.present}
- @SharedPref{.internal.present}
{#user-content-preference-api-helpers.anchor}Preference API helpers
- @PreferenceScreen{.internal.present}
- @PreferenceHeaders{.internal.present}
- @PreferenceByKey{.internal.present}
- @PreferenceChange{.internal.present}
- @PreferenceClick{.internal.present}
- @AfterPreferences{.internal.present}
框架官网网站:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations
转自请注明:http://www.etongwl.com/archives/956.html
💬 评论