Android Annotations 介绍 - hack8的专栏 - 博客频道 - CSDN.NET
开发过程中看到别人使用了Android Annotations的代码,该代码是一个第三方框架,通过注释来开发应用。使用Android Annotations能够大大减少代码量。
请看下面的Java代码
- package com.example.androidannotations;
- import android.app.Activity;
- import android.widget.TextView;
- import com.googlecode.androidannotations.annotations.AfterViews;
- import com.googlecode.androidannotations.annotations.EActivity;
- import com.googlecode.androidannotations.annotations.ViewById;
- //Eactivity注释可以设置Layout,相当于setConentView方法
- @EActivity(R.layout.activity_main)
- public class MainActivity extends Activity {
- //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)
- @ViewById
- TextView tv;
- //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行
- @AfterViews
- void init()
- {
- tv.setText("asfsdf");
- }
- }
- package com.example.androidannotations;
- import android.app.Activity;
- import android.widget.TextView;
- import com.googlecode.androidannotations.annotations.AfterViews;
- import com.googlecode.androidannotations.annotations.EActivity;
- import com.googlecode.androidannotations.annotations.ViewById;
- //Eactivity注释可以设置Layout,相当于setConentView方法
- @EActivity(R.layout.activity_main)
- public class MainActivity extends Activity {
- //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)
- @ViewById
- TextView tv;
- //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行
- @AfterViews
- void init()
- {
- tv.setText("asfsdf");
- }
- }
package com.example.androidannotations; import android.app.Activity; import android.widget.TextView; import com.googlecode.androidannotations.annotations.AfterViews; import com.googlecode.androidannotations.annotations.EActivity; import com.googlecode.androidannotations.annotations.ViewById; //Eactivity注释可以设置Layout,相当于setConentView方法 @EActivity(R.layout.activity_main) public class MainActivity extends Activity { //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv) @ViewById TextView tv; //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行 @AfterViews void init() { tv.setText("asfsdf"); } } package com.example.androidannotations; import android.app.Activity; import android.widget.TextView; import com.googlecode.androidannotations.annotations.AfterViews; import com.googlecode.androidannotations.annotations.EActivity; import com.googlecode.androidannotations.annotations.ViewById; //Eactivity注释可以设置Layout,相当于setConentView方法 @EActivity(R.layout.activity_main) public class MainActivity extends Activity { //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv) @ViewById TextView tv; //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行 @AfterViews void init() { tv.setText("asfsdf"); } }
一些常用注释的使用方法:
@AfterInject 定义的方法在类的构造方法执行后执行
@AfterTextChange定义的方法在TextView及其子类的Text属性改变后执行
@AfterViews 定义的方法在setContentView后执行
@Background 定义的方法在后台线程执行
@BeforeTextChange 定义的方法在TextView及其子类的Text属性改变前执行
@Click 定义点击监听器
@EActivity 在Activity中启用Annotations
@EProvider 在 ContentProvider中启用Annotations
@EReceive 在BroadcastReceiver中启用Annotations
@EService 在Service中启用Annotations
@EView 在自定义的View的子类中启用Annotations
@Fullscreen 全屏
@NoTitle 无标题栏掌握这些注视对读懂利用该第三方代码开发的代码非常有帮助,同时对利用该代码开发的APK文件反编译的解释能够有更深入的了解。