• Android Annotations 介绍


    Android Annotations 介绍 - hack8的专栏 - 博客频道 - CSDN.NET

    开发过程中看到别人使用了Android Annotations的代码,该代码是一个第三方框架,通过注释来开发应用。使用Android Annotations能够大大减少代码量。

    请看下面的Java代码

    1. package com.example.androidannotations;   
    2. import android.app.Activity;   
    3. import android.widget.TextView;   
    4.     
    5. import com.googlecode.androidannotations.annotations.AfterViews;   
    6. import com.googlecode.androidannotations.annotations.EActivity;   
    7. import com.googlecode.androidannotations.annotations.ViewById;   
    8.     
    9. //Eactivity注释可以设置Layout,相当于setConentView方法    
    10. @EActivity(R.layout.activity_main)   
    11. public class MainActivity extends Activity {   
    12.     //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)    
    13.     @ViewById   
    14.     TextView tv;   
    15.     //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行    
    16.     @AfterViews   
    17.     void init()   
    18.     {   
    19.         tv.setText("asfsdf");   
    20.     }   
    21. }   
    22.   
    23. package com.example.androidannotations;  
    24. import android.app.Activity;  
    25. import android.widget.TextView;  
    26.    
    27. import com.googlecode.androidannotations.annotations.AfterViews;  
    28. import com.googlecode.androidannotations.annotations.EActivity;  
    29. import com.googlecode.androidannotations.annotations.ViewById;  
    30.    
    31. //Eactivity注释可以设置Layout,相当于setConentView方法  
    32. @EActivity(R.layout.activity_main)  
    33. public class MainActivity extends Activity {  
    34.  //ViewById注释功能与findViewById相同,如果声明的变量名就是id,可以省去参数,否则应加上id,如ViewById(R.id.tv)  
    35.  @ViewById  
    36.  TextView tv;  
    37.  //AfterViews注释定义的方法会在OnCreate方法的setContentView后执行  
    38.  @AfterViews  
    39.  void init()  
    40.  {  
    41.   tv.setText("asfsdf");  
    42.  }  
    43. }  
     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文件反编译的解释能够有更深入的了解。

  • 相关阅读:
    透视投影矩阵的推导
    选择排序
    递归运动函数的实现
    插入排序
    基本光照模型
    顶点法向量从物体坐标系变换到世界坐标系
    Phong和BlinnPhong光照模型
    unity3d使用脚本保存屏幕截图
    【转】C++11常用特性的使用经验总结
    右手坐标系下LookAt视图矩阵的推导
  • 原文地址:https://www.cnblogs.com/seven1979/p/4272638.html
Copyright © 2020-2023  润新知