开发Android项目中使用androidannotations
2024-10-02 01:57:38
前言
最近接手了一个工程,使用了androidannotations,因为以前使用过butterknife所以有似曾相识的感觉,但是有些用法还是不一样,所以就花时间学习了下androidannotations的使用方法并做了一下记录.
准备工作
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>
更多使用方法和方式请参考:
总结
使用androidannotations
优点:减少了代码量,监听事件更容易看懂;
缺点:有新的变量需要编译更新,否则显示红色的错误提示。
最新文章
- 转 makefile
- Kendo UI For ASP.NET MVC项目资源
- Python 小细节备忘
- nc 局域网聊天+文件传输(netcat)
- SQL Server 数据类型映射 (ADO.NET)
- 武汉Uber优步司机奖励政策(1月18日~1月24日)
- [ES6] ... spread operator
- Git分支管理及常见操作
- MongoDB 基本操作学习笔记
- CENTOS6.6下redis3.2集群搭建
- freemarker定义一个连续的序列
- PPT分享 | 怎么在区块链上保护隐私?
- Python学到什么程度就可以去找工作?掌握这4点足够了!
- sql server 2008怎样导入mdf,ldf文件,怎样解决导入mdf,ldf文件时出现附加数据库错误的问题
- vi编辑器和系统分区
- 第一册:lesson thirteen.
- C#删除文件夹以及删除文件
- python3 用户登录 day01
- 使用go语言操作db2
- 多选插件multiselect.js