首页创建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
- @EApplication
- @EBean
- @EFragment
- @EProvider
- @EReceiver
- @EIntentService
- @EService
- @EView
- @EViewGroup
Injection
- @AfterExtras
- @AfterInject
- @AfterViews
- @App
- @Bean
- @Extra
- @FragmentArg
- @FragmentById
- @FragmentByTag
- @FromHtml
- @HttpsClient
- @NonConfigurationInstance
- @RootContext
- @SystemService
- @ViewById
- @ViewsById
Event binding
- @TextChange
- @AfterTextChange
- @BeforeTextChange
- @EditorAction
- @FocusChange
- @CheckedChange
- @Touch
- @Click
- @LongClick
- @ItemClick
- @ItemLongClick
- @ItemSelect
- @OptionsItem
- @SeekBarProgressChange
- @SeekBarTouchStart
- @SeekBarTouchStop
Threading
Misc
- @InstanceState
- @WindowFeature
- @Fullscreen
- @CustomTitle
- @InjectMenu
- @OptionsMenu
- @OptionsMenuItem
- @OrmLiteDao
- @RoboGuice
- @Trace
- @Transactional
- @OnActivityResult
- @OnActivityResult.Extra
- @HierarchyViewerSupport
- @ServiceAction
- @Receiver
- @Receiver.Extra
- @ReceiverAction
- @ReceiverAction.Extra
- @IgnoredWhenDetached
- @WakeLock
Resource injection
- @StringRes
- @AnimationRes
- @ColorRes
- @DimensionPixelOffsetRes
- @DimensionPixelSizeRes
- @DimensionRes
- @BooleanRes
- @ColorStateListRes
- @DrawableRes
- @IntArrayRes
- @IntegerRes
- @LayoutRes
- @MovieRes
- @StringArrayRes
- @TextArrayRes
- @TextRes
- @HtmlRes
Rest API
- @Rest
- @RestService
- @Get
- @Post
- @Put
- @Delete
- @Options
- @Head
- @Accept
- @RequiresHeader
- @RequiresCookie
- @RequiresCookieInUrl
- @RequiresAuthentication
- @SetsCookie
- @RequiresCookieInUrl
Typesafe SharedPreferences
- @DefaultBoolean
- @DefaultFloat
- @DefaultInt
- @DefaultLong
- @DefaultString
- @DefaultStringSet
- @DefaultRes
- @Pref
- @SharedPref
Preference API helpers
- @PreferenceScreen
- @PreferenceHeaders
- @PreferenceByKey
- @PreferenceChange
- @PreferenceClick
- @AfterPreferences
框架官网网站:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations
转自请注明:http://www.etongwl.com/archives/956.html