前言

最近接手了一个工程,使用了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
优点:减少了代码量,监听事件更容易看懂;
缺点:有新的变量需要编译更新,否则显示红色的错误提示。

最新文章

  1. 转 makefile
  2. Kendo UI For ASP.NET MVC项目资源
  3. Python 小细节备忘
  4. nc 局域网聊天+文件传输(netcat)
  5. SQL Server 数据类型映射 (ADO.NET)
  6. 武汉Uber优步司机奖励政策(1月18日~1月24日)
  7. [ES6] ... spread operator
  8. Git分支管理及常见操作
  9. MongoDB 基本操作学习笔记
  10. CENTOS6.6下redis3.2集群搭建
  11. freemarker定义一个连续的序列
  12. PPT分享 | 怎么在区块链上保护隐私?
  13. Python学到什么程度就可以去找工作?掌握这4点足够了!
  14. sql server 2008怎样导入mdf,ldf文件,怎样解决导入mdf,ldf文件时出现附加数据库错误的问题
  15. vi编辑器和系统分区
  16. 第一册:lesson thirteen.
  17. C#删除文件夹以及删除文件
  18. python3 用户登录 day01
  19. 使用go语言操作db2
  20. 多选插件multiselect.js

热门文章

  1. 《你不知道的JavaScript(上)》笔记——let和const
  2. 数据库中暂时表,表变量和CTE使用优势极其差别
  3. 怎么不让控制台system.out.println()打印
  4. Android Studio SVN使用和VisualSVN-Server配置(图解)
  5. spark安装与调试
  6. 数据类型总结——Array(数组类型)
  7. 数据类型总结——Boolean类型(布尔类型)
  8. Spring Cloud底层原理
  9. thinkphp mysql 坐标按距离排序
  10. mysql查询字段所在表