Android注解框架AndroidAnnotations学习笔记

     之前也了解过注解框架及AndroidAnnotations框架,但是没有深入地学习,也没有应用到自己的项目中去。这几天看了一下相关的学习视屏,感觉这个框架确实好用,所以决定认真学习下,在接下来的项目中利用起来! 学习Android框架之类的东东肯定少不了上Github及对应的官网上看下AndroidAnnotationsAndroidAnnotations相应的网址是如下:

      在github上的地址是:https://github.com/excilys/androidannotations/wiki  。

       官网地址是:http://androidannotations.org/  。这两个网址对AndroidAnnotations的介绍和使用都非常地详细。AndroidAnnotations框架的最大优势在于可以用注解的方式大大减少开发的代码量,提高程序的运行效率。

        使用AndroidAnnotations前要对开发工具进行相应的设置,使用Eclipse开发工具可以参考:http://jingyan.baidu.com/article/5552ef47c25fea518ffbc9e9.html,如果是使用AndroidStudio作为开发工具,设置可以参考:http://blog.csdn.net/hanhailong726188/article/details/40585057等。接下来就开始我们的AndroidAnnotation使用。
  在AndroidAnnotations中有很多针对各种控件,组件等使用的annotations,开发中常用的,可以快速上手的annotations有:
1,Enhanced componets(组件注解):
  • @EActivity:对Activity的注解操作,我们在写一个Activity时,只要在类名上写上@EActivity(R.layout.xx),就可以把对应的布局关联到此Activity,再也不用在Oncreate(Bundle savedInstanceState)来通过setContentView(R.layout.xx)来关联对应布局,方便吧!
  • @EService:对Service组件的注解。
  • @EProvider:对ContentProvider组件的注解。
  • @EReceiver:对Broadcastreceiver组件进行注解。
  • 还有@EApplication,@EView等。
2,Injections(常用操作注解):
  • @ViewById:替代我们平时 代码 中的findViewsById();
  • @ViewsById:同上一样的,只不过可以同时对多个view进行findViewsById()操作。
  • @AfterViews:用于在我们@ViewById后进行设置数据等操作。
  • @Extra:用于在组件之间跳转时数据传递操作,我们通常是在Intent中putExtra(),然后再接收页面用getIntent().getString()来获取数据,有了@Extra后,我们就不用getIntent().getString()来取传递的数据了。
3,Event binding(事件绑定注解):
  • @Click:点击事件注解,替代我们平时的setOnclickListener()方法,只要在方法上加上@Click(R.id.btn),括号里指要进行点击事件的控件id,
  • @Touch:onTouch()事件注解
  • @ItemClick,@ItemLongClick,@ItemSelect:对我们学用的ListView,GridView等组件的item点击事件,item长按事件进行的注解 操作。
  • @TextChange,@AtferTextChange,@BeforTextChange:用与EditText等输入文字变化 监听的注解。
  • 还有@FocusChange等。
4,Threading(线程处理注解)
  • @Background:后台处理操作
  • @UiThread:主线程操作等
5,Resource injection(资源文件注解):
  • @StringRes:对资源文件String.xml关联注解
  • @ColorrRes:对资源文件color.xml关联注解
  • 还有@DimensionRes,@StringArrayRes
6,还有其它很多类型的 annotations,可以参考官网:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations
下面是使用注解编写代码的小例子,也是参考官网的:
@EActivity(R.layout.translate) // Sets content view to R.layout.translate
public class TranslateActivity extends Activity {

    @ViewById // Injects R.id.textInput
    EditText textInput;

    @ViewById(R.id.myTextView) // Injects R.id.myTextView
    TextView result;

    @AnimationRes // Injects android.R.anim.fade_in
    Animation fadeIn;

    @Click // When R.id.doTranslate button is clicked 
    void doTranslate() {
         translateInBackground(textInput.getText().toString());
    }

    @Background // Executed in a background thread
    void translateInBackground(String textToTranslate) {
         String translatedText = callGoogleTranslate(textToTranslate);
         showResult(translatedText);
    }

    @UiThread // Executed in the ui thread
    void showResult(String translatedText) {
         result.setText(translatedText);
         result.startAnimation(fadeIn);
    }

    // [...]
}

最后,简单记录下使用AndroidAnnotations的注意事项:
1,比如我们要项目中有个Activity是FristActivity,我们在注册到AndroidManifest.xml中对应的activity是在 FristActivity_(在你写的Activity类名后加下划线),否则将报错,
2,我们在跳转页面时,我们写入Intent中跳转目标Acitivity类名也是要写末尾带下划线的对应Activity,
3,我们在使用@ViewById时,如果你在Activity中定义的组件名和xml中的id是一样的,则可以直接写@ViewById,而不用写@ViewById(R.id.xx),
4, 一定要@AfterViews对应的方法中进行view的一些设置,不要在oncreate()中设置,因为oncreate()在执行时 view还没有注入,这时运行会报错。
5,推荐一篇注解使用介绍较全面(当然没官网全面啦)的文章: http://www.csdn123.com/html/topnews201408/29/729.htm



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值