AndroidAnnotation常用注解使用说明

简介

AndroidAnnotations是一个开源框架,通过使用它开放出来的注解api,可以大大的减少无关痛痒的代码量,简洁代码。

官方文档(github链接)

第三方库导入

目前最新版本为4.0.0

在app/目录下的build.gradle(局部gradle)中添加下面红色粗体字配置:

applyplugin:'com.android.application'
applyplugin:'android-apt' defAAVersion='4.0.0'

android{
compileSdkVersion23
buildToolsVersion"23.0.2"

defaultConfig{
applicationId"com.xxx.demo"
minSdkVersion18
targetSdkVersion23
versionCode1
versionName"1.0"
}

buildTypes{
release{
minifyEnabledfalse
proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}

dependencies{
compilefileTree(dir:'libs',include:['.jar'])
testCompile'junit:junit:4.12'
compile'com.android.support:appcompat-v7:23.1.1'
*apt"org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion"
}

apt{ arguments{ androidManifestFilevariant.outputs[0].processResources.manifestFile resourcePackageName"com.xxx.demo"(你项目的包名) } }

项目包名可在AndroidManifest.xml中的package确认。

在gradle/目录下的build.gradle文件(全局gradle)中添加下面红色粗体字配置:

buildscript{
repositories{
jcenter()
}
dependencies{
// replace with the current version of the Android plugin
classpath'com.android.tools.build1.5.0'
// replace with the current version of the android-apt plugin
classpath'com.neenbedankt.gradle.plugins:android-apt:1.4+'
}
}

allprojects{
repositories{
jcenter()
}
}

taskclean(type:Delete){
deleterootProject.buildDir
}

常用注解

组件注解

@EActivity(R.layout.acitvity_main)
public class MainActivity extends Activity{
...
}

常用的有@EActivity、@EFragment、@EService等,进行注解了的组件才可使用其他注解功能。

资源引用的注解

@ViewById(R.id.tv_title)//此处可去掉括号部分
 TextView tv_title;

 @ViewById
 ImageView img_menu;

 @ViewById
 RelativeLayout rl_light;

 @Extra
 String mTitle;

 @StringRes(R.string.hello)
 String hello;

简单的控件绑定,资源文件中的id与控件名一致即可不在注解后加上括号及对应控件的id,@Extra也是。其他地方需要声明控件id的皆同理。

当View相关的成员变量初始化完毕后,会调用拥有@AfterViews注解的方法,可以在里面初始化一些界面控件等。

事件绑定

@Click
    void img_back() {     
        finish();
        overridePendingTransition(R.anim.zoom_in, R.anim.zoom_out);
    }

还有@TextChange、@ItemClick、@SeekBarProgressChange等。

比较方便的一些注解

异步线程与UI线程

@UiThread
void doSomething(){
...
}

@Background
void doSomething(){
...
}

UI线程执行的方法加个@UiThread,异步线程方法加个@Background,两者的交互就是方法直接的相互调用,不用再使用Handler去发送接收Message了。

广播接收

@Receiver(actions = Utils.ACTION_BLE_DISCONNETED)
    public void bleDisconnect() {
       ...
    }

 @Receiver(actions = Utils.ACTION_UPDATE_WATER_SHOW)
 public void updateWaterShow(@Receiver.Extra(Utils.VALUE_ADDRESS) long water) {
     if (switchIsOpen)
         edt_water.setText(water + "");
 }

注册广播接收,简单搞定,不需要其他操作。相比下传统的方式:

Private final BroadcastReceiver mGattUpdateReceiver = newBroadcastReceiver(){
    @Override
    public void onReceive(Contextcontext,Intentintent){
      final Stringaction=intent.getAction();
      if(Stringaction.equal(Utils.ACTION_STOP_SCAN)){
        ...   
      }
    }
};

private IntentFilter makeGattUpdateIntentFilter() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Utils.ACTION_STOP_SCAN);
return intentFilter;
}

registerReceiver(mGattUpdateReceiver,makeGattUpdateIntentFilter());

unregisterReceiver(mGattUpdateReceiver);

瞬间简洁了很多吧

SharedPreferences

直接使用@SharedPref可以简单地使用SharedPreferences的功能。

首先,建一个类存放需要存取的数据:

@SharedPref(value=SharedPref.Scope.UNIQUE)
public interface MyPrefs {
    @DefaultBoolean(true)
    boolean isFirstIn();

    @DefaultString("")
    String ignoreVersion();

    @DefaultInt(0)
    int shockLevel();

}

括号后面的是默认值,接下来就是简单的使用了,首先在用到的类里声明:

@Pref
 MyPrefs_ myPrefs;

 boolean isFirstIn = myPrefs.isFirstIn().get();
 myPrefs.isFirstIn().put(false);

使用起来特别方便,需要特别说明的是,这些数据要在一些不同的组件中同步共享,需在@SharedPref加上(value=SharedPref.Scope.UNIQUE),之前在activity和service中的数据总是对不上,找了好久才找到原因。

@EBen

想要在普通的类中也用上注解,只需在类名加上@EBean

@EBean
public class MyClass {
  @UiThread
  void updateUI() {
}

使用时,声明:

@EActivity
public class MyActivity extends Activity {
  @Bean
  MyClass myClass;
}

有一些要注意的是:

@EBean注解的类,只能有一个构造方法,且这个构造方法必须无参数或者只有context参数。

在activity等组件内声明了后,不用再去new这个类,否则会出错。

总结

比较常用的一些方法及说明大概就是这些,当然Annotation还有不少东西,想要了解得更深入可以到文首的链接处查看官方的使用说明,进一步了解!


转自:http://www.codeceo.com/article/android-annotation-usage.html

Android学习交流群:523487222

(如果您觉得有用,欢迎加入,一起学习进步)
点击链接加入群【Android学习群】

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot常用的注解有以下几种: 1. @SpringBootApplication: 标注在启动类上,表示这是一个Spring Boot应用程序的入口。它其实是一个组合注解,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan。 2. @RestController: 标注在控制器类上,表示这是一个RESTful风格的控制器。它相当于@Controller和@ResponseBody的组合注解,用于处理HTTP请求并返回JSON数据。 3. @RequestMapping: 标注在控制器方法上,用于映射HTTP请求的URL路径。可以指定请求的方法、请求的参数、请求的头等条件,还可以设置响应的媒体类型。 4. @Autowired: 标注在字段、构造方法或Setter方法上,实现自动装配。它可以自动将依赖的Bean注入到目标对象中,省去了手动创建对象的过程。 5. @Component: 标注在类上,表示这是一个可被Spring容器扫描并管理的Bean。它是一个泛化的概念,还有其他具体的子注解如@Service、@Repository、@Controller等。 6. @Configuration: 标注在配置类上,表示这是一个配置类。配置类通常用于定义Bean和配置其他组件,相当于XML配置文件中的<beans>标签。 7. @EnableAutoConfiguration: 标注在配置类上,用于开启自动配置。自动配置根据项目的依赖和配置来推断和配置Spring Bean。 8. @Value: 标注在字段上,用于读取配置文件中的值。可以通过SpEL表达式访问配置文件中的属性值,例如@Value("${spring.datasource.url}")。 以上是Spring Boot常用的注解及其作用的简要说明。具体的注解还有很多,可以根据实际需求选择使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值