前言

最近接手了一个工程,使用了androidannotations,因为以前使用过butterknife所以有似曾相识的感觉,但是有些用法还是不一样,所以就花时间学习了下androidannotations的使用方法并做了一下记录.

androidannotations
Git链接
文档地址

准备工作

1.在Android Studio中新建一个Android项目
2.在工程gradle.build文件中加入androidannotations依赖,更新gradle,使在工程中可以成功引用相关方法
在工程build.gradle(最外层)文件dependencies中添加:

dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

在app/build.gradle文件中添加:

apply plugin: 'android-apt'
def AAVersion = '3.2' // 可根据需要修改版本号 dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
} apt {
arguments {
androidManifestFile variant.outputs[0]?.processResources?.manifestFile
// if you have multiple outputs (when using splits), you may want to have other index than 0 // you should set your package name here if you are using different application IDs
// resourcePackageName "your.package.name" // You can set optional annotation processing options here, like these commented options:
// logLevel 'INFO'
// logFile '/var/log/aa.log'
}
}

此时同步下工程gradle下载文件,等下载完毕准备工作就完成了。

开始使用

接下来通过对比原来写法和现在写法来方便记录使用方法

1.设置布局

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

2.实例化控件

TextView textview = (TextView) findViewById(R.id.tv_id);
现在写法

@ViewById(R.id.btn_btn)
Button mBtnBtn;

3.初始化控件显示

@AfterViews
void initViews() {
// 初始化控件
mBtnBtn.setText("button 1");
mLvData.setAdapter(mInfoAdapter);
}

4.设置控件点击事件

@Click(R.id.btn_btn)
void btnClick() {
// do something
}

5.定义常量

@Extra
String mInfoStr; // 可被外部访问到

6.打开新的Activity

DetailActivity_.intent(this).start(); // 不带参数
DetailActivity_.intent(this).mInfoStr("this is infoStr.").start(); // 带参数

7.控件ListView的使用,含adapter(代码较多,请直接看Demo)

8.在AndroidManifest.xml定义方式

类名加下划线

<activity android:name=".DetailActivity_"></activity>

更多使用方法和方式请参考:

Cookbook
AvailableAnnotations

总结

使用androidannotations
优点:减少了代码量,监听事件更容易看懂;
缺点:有新的变量需要编译更新,否则显示红色的错误提示。

开发Android项目中使用androidannotations的更多相关文章

  1. 在Android项目中使用AndroidAnnotations(配置框架,显示Hello World!)

    使用这个框架可以极大的简化在开发Android过程中的代码.提高开发的效率.这里简单说一下配置方式.和使用办法. 项目的地址为:AndroidAnnotations Jar包下载地址:3.0.1 下载 ...

  2. 对Android项目中的文件夹进行解释

    对Android项目中的文件夹进行解释: · src:里面存放的是Activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级. · gen:此文件夹中的内容是自 ...

  3. 在Android项目中启用Java 8的部分特性--Lambda & Method References

    Android N发布时同时发布了一个新的编译工具Jack(AS2.1+支持),基于Jack我们可以使用Java 8 的部分特性,在低版本机器上能使用的更少,同时Jack也有诸多不完善,工具链的改变难 ...

  4. Android项目中如何用好构建神器Gradle?(转)

    最近在忙团队并行开发的事情,主要是将各个团队的代码分库,一方面可以降低耦合,为后面模块插件化做铺垫,另一方面采用二进制编译,可以加快编译速度.分库遇到了一些问题,很多都要通过Gradle脚本解决,所以 ...

  5. 关于如何正确地在android项目中添加第三方jar包

    在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception.error inflati ...

  6. 在Android项目中使用Java8

    前言 在过去的文章中我介绍过Java8的一些新特性,包括: Java8新特性第1章(Lambda表达式) Java8新特性第2章(接口默认方法) Java8新特性第3章(Stream API) 之前由 ...

  7. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  8. android项目中配置NDK自动编译生成so文件

    1 下载ndk开发包   2 在android 项目中配置编译器(以HelloJni项目为例)  2.1 创建builer  (a)Project->Properties->Builder ...

  9. Android 项目中文件夹的说明与作用(转)

    (转自:http://blog.csdn.net/goodshot/article/details/11529731) Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. ...

随机推荐

  1. js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功)

    js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功) 一.总结 一句话总结:event的result属性即可. 1.event的result属性的实际应用场景是什么? ...

  2. gdbserver远程调试嵌入式linux应用程序方法

    此处所讲的是基于gdb和gdbsever的远程调试方法.环境为:PC机:win7.虚拟机:10.04.下位机:飞嵌TE2440开发板. 嵌入式linux应用程序的开发一般都是在linux里面编写好代码 ...

  3. 自己写的关于生产者与消费者模式,还有定时任务的demo

    为了加深对生产者消费者模式的理解,特意写了这个demo,里面还包含了一个自己写的定时任务.代码下载地址:http://download.csdn.net/detail/li_yan_fei/98115 ...

  4. Java随机验证吗

    <span style="font-size:18px;">package com.java.process.jsp; import java.awt.Color; i ...

  5. php 复制粘贴覆盖文件

    <?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::cre ...

  6. js获取浏览器和元素对象的尺寸

    1.屏幕尺寸 window.screen.height //屏幕分辨率的高 window.screen.width //屏幕分辨率的宽 window.screen.availHeight //屏幕可用 ...

  7. 互联网支付的"二清"介绍

    所谓"二清"公司,是针对"一清"机构而言. 的"一清"和"二清"一般属于POS收单业务范畴,"一清" ...

  8. 2、Cocos2dx 3.0游戏开发找小三之引擎简单介绍

    尊重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27094663 引擎简单介绍 Cocos2d-x 的 ...

  9. IIS最大并发连接数 = 队列长度 + IIS最大并发工作线程数

    深入理解IIS的多线程工作机制   首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并 ...

  10. 【34.25%】【BZOJ 2648】SJY摆棋子

    Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 2718  Solved: 931 [Submit][Status][Discuss] Descrip ...