Android Annotations框架 配置及使用(Windows 7 + Android Studio 1.2.1.1)

原创 2015年07月06日 22:00:13

我自己对Annotations框架理解是在Android 编码过程中一些操作用注解的方式代替,从而提高编码效率和代码可读性



在网上看了很多个版本的配置 攻略,网上配置的可能版本比较旧,终于能用了~~~


Android Studio 需要配置 两个文件


Project:~下的是全局配置文件,:(红色为添加内容)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath'com.neenbedankt.gradle.plugins:android-apt:1.4' //添加

    }
}

allprojects {
    repositories {
        jcenter()
    }
}




Module:app是局部配置文件:

apply plugin: 'com.android.application'
<span style="color:#ff0000;">apply plugin: 'android-apt'
</span>


android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.administrator.androidappanontations"
        minSdkVersion 19
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    apt "org.androidannotations:androidannotations:3.2" <span style="font-family: Arial, Helvetica, sans-serif;">//添加</span>
    compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.android.support:appcompat-v7:22.0.0'    <span style="font-family: Arial, Helvetica, sans-serif;">//添加</span>
    compile "org.androidannotations:androidannotations-api:3.2"  <span style="font-family: Arial, Helvetica, sans-serif;">//添加</span>
}


apt {
    arguments {
       androidManifestFile variant.outputs[0].processResources.manifestFile //添加
      //androidManifestFile variant.processResources.manifestFile               //旧版的Android Studio 用这一句替换上一句
        resourcePackageName "com.example.administrator.androidappanontations"//添加此处填写你自己的包名
    }
}


配置文件使用Activity必须使用在Activit后面加_

<activity
    android:name=".SecondActivity_"
    android:label="@string/app_name" />
Activity跳转在要跳转的Activity也必须加~

Intent i=new Intent(MainActivity.this,SecondActivity_.class);

修改完后要重新编译一遍文件(ctrl+F9)

然后就可以使用Annotations了;

1:使用

@EActivity(R.layout.activity_main)

来代替

setContentView(R.layout.activity_main);
设置布局文件

2:

(这里很重要,定义view的时候一定不能用private  ,使用注解的方法也一定不能用 private)

使用

@ViewById(R.id.button)
Button button;

代替

button=findViewById(R.id.button);


2.1:

使用:

@ViewsById({R.id.textView,R.id.textView2})
List<TextView> textViewList;
代替一个个的去绑定

3:

使用

@Click(R.id.button)
public void StarActivity(){
    Intent i=new Intent(MainActivity.this,MyService_.class);
    startService(i);
}
代替:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i=new Intent(MainActivity.this,MyService_.class);
        startService(i);
    }
});

3.1:

同样几个button也可以共享一个Onclick事件

@Click({R.id.button,R.id.button1})
public void StarActivity(){

    Intent i=new Intent(MainActivity.this,MyService_.class);
    startService(i);
}
3.2:

在方法中加参数可以识别不同的view,或者对其做操作

@Click({R.id.button,R.id.button2})
public void StarActivity(View view){

    String outString=null;
    if(view.equals(button))
            outString="button";
    else if(view.equals(button1))
            outString="button1";
    else
            outString="fail";
    Toast.makeText(this,outString, Toast.LENGTH_LONG).show();
}
3.3:长按,触摸

@Touch(R.id.button)

@LongClick(R.id.button)


用法基本和Click相同

3.4:

@ItemClick(R.id.list_view)

也可以使用


4:使用AfterViews

@AfterViews
public void setTextView(){
    textView.setText("Hello world");
}
会在
@ViewById(R.id.textView)

之后对textView进行赋值

5:便捷获取Extra中值

在前一个Activity 

Intent i=new Intent(MainActivity.this,SecondActivity_.class);
i.putExtra(NAME_KEY,NAME_KEY);
i.putExtra(PASSWORD_KEY,PASSWORD_KEY);
startActivity(i);
在后一个Antivity中可以通过

@Extra(MainActivity.NAME_KEY)
String name;
@Extra(MainActivity.PASSWORD_KEY)
String password;
直接取出,并且避免为空验证

6:快速开一个新的线程:

@Background
public void doSomeThing(){
    Log.d("Annotations",String.valueOf(Thread.currentThread().getId()));
}
调用

doSomeThing();
就可以新开一个线程做耗时的工作

个人感觉这个功能挺有用的,但是担心会遇到一些问题~~~

6.1

在doSomeThing的子线程中调用主线程中的函数,达到控制主线程view的目的

@Background
public void doSomeThing(){
    Log.d("Annotations",String.valueOf(Thread.currentThread().getId()));
    uiThread();
}

@UiThread
public void uiThread(){
    button1.setText("Uithread");        
}
7:对资源进行获取

在res下string 下定义

<string name="name">annotations</string>
然后通过

@StringRes(R.string.name)
String name;
获取

7.1:获取 dimen的字体大小

<dimen name="text_size">16dp</dimen>
然后通过

@DimensionRes(R.dimen.text_size)
float textSize;
获取


--------------------------------------------------------

AndroidManifest.xml

中通过Ctrl+鼠标点击

android:name=".MainActivity_"
可以去查看修改后的源代码

更多的标签可以去看API

https://github.com/excilys/androidannotations/wiki/AvailableAnnotations#typesafe-sharedpreferences



Android Studio配置Android Annotations框架详解--说说那些坑

我们开发过程中都需要写些findViewByid、serOnclickListener等类似的代码,虽然不费事,但是一个项目下来,工作量还是很大的。为了节省工作量,运生了很多对应的注解框架。网上的博客...
  • fesdgasdgasdg
  • fesdgasdgasdg
  • 2016年07月05日 23:23
  • 3177

Android Studio : 配置 AndroidAnnotations

Android Studio 中配置 AndroidAnnotations 非常方便,只需要分别在项目Gradle和Module的Gradle中添加一些配置,然后重新编译,Android Studio...
  • doris_d
  • doris_d
  • 2016年09月23日 10:02
  • 1077

Android注解框架Annotations从配置到应用

最近在看一个新的基于注解开发的项目,了解到Android中同样存在一些注解框架,能够大大提高我们的编码规范和效率,减少代码量。本文主要分为两部分,针对较热门的注解框架Android Annotatio...
  • IT_ZJYANG
  • IT_ZJYANG
  • 2016年06月29日 00:30
  • 2743

android studio 配置androidannotations注入框架,问题一二三

最近比较闲,老是感觉编码应该是项轻松的感觉,代码不应该繁复!好的代码应该是易于理解,易读的,但是鉴于在同一个团队中各个人的水平不一样,然后代码风格也不一样,导致每次改代码修BUG的时候就莫名的烦躁,然...
  • diguoweiwu
  • diguoweiwu
  • 2016年03月09日 18:22
  • 383

android studio 配置androidannotations注入框架

1.https://github.com/excilys/androidannotations/wiki/Building-Project-Gradle 这是项目配置地址!按照步骤来,注意绝壁不能省...
  • BianChengNinHao
  • BianChengNinHao
  • 2016年12月14日 16:33
  • 390

Android开发之AndroidAnnotations框架的使用

AndroidAnnotations是Android开发中使用的一个注解框架,主要是通过各种注解来完成很多繁琐的代码工作,比如通过控件id找到对应的控件,在不使用框架的情况下,经常需要写一大堆的fin...
  • yubo_725
  • yubo_725
  • 2016年04月21日 10:45
  • 2303

AndroidStudio配置AndroidAnnotations

第一步:添加apt插件
  • hanhailong726188
  • hanhailong726188
  • 2014年10月29日 13:26
  • 7910

在Windows 7 上大家Android studio环境

开发安卓的IDE有两种,eclipse和android-studio,使用android-studio搭建安卓开发环境相对简单,只要一个安装包就搞定。下面就介绍android-studio的安装步骤。...
  • wh_19910525
  • wh_19910525
  • 2017年02月17日 14:19
  • 376

android studio配置androidannotations框架

最近转用as作为开发安卓 的IDE,因此记录下这个过程,as配置androidannotations框架没有eclipse那么麻烦,总共就需要配置两个文件,不用手动下载任何第三方库文件,包括andro...
  • shenshucong520
  • shenshucong520
  • 2016年03月17日 09:57
  • 484

Android Studio 1.5+ 配置Android Annotations框架

关于在Android Studio中配置Android Annotations框架,参考官网文档,配置成功,这里做一下简单记录。 版本说明: Android Studio 1.5.1  Android...
  • CrystalDestiny
  • CrystalDestiny
  • 2015年12月10日 16:48
  • 525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Annotations框架 配置及使用(Windows 7 + Android Studio 1.2.1.1)
举报原因:
原因补充:

(最多只允许输入30个字)