androidannotations 注解框架的配置及使用教程
Posted Gradle官方文件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了androidannotations 注解框架的配置及使用教程相关的知识,希望对你有一定的参考价值。
androidannotations 从入门到精通
作为一个菜鸟抽空学习下androidannotations ,痛并快乐的行走在成长为大神之路上。
androidannotations 官方地址
1:配置教程
2:使用教程
3:官网
A:下面上我的配置方法
//step 1
//添加依赖插件,定义版本号
apply plugin: 'android-apt'
def AAVersion = '4.0.0'
//step 2
buildscript
//指定远程仓库
repositories
mavenCentral()
//依赖库
dependencies
// 记得保持版本号与您根目录下 build.gradle 中所依赖的版本号一致
classpath 'com.android.tools.build:gradle:2.3.0'
// 保持最新的版本号,当前是1.8
// 最新版查看地址-http://mvnrepository.com/artifact/com.neenbedankt.gradle.plugins/android-apt
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
//step 3
apt
arguments
androidManifestFile variant.outputs[0]?.processResources?.manifestFile
dependencies
// 具体的依赖
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
B:配置完就可以使用了
xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.joey.mydeno.MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/textShow"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="Click Me"/>
</LinearLayout>
Activity代码
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Fullscreen;
import org.androidannotations.annotations.UiThread;
import org.androidannotations.annotations.ViewById;
import org.androidannotations.annotations.WindowFeature;
import org.androidannotations.annotations.res.StringRes;
@EActivity (R.layout.activity_main)//引入 Activity 的布局,相当于 setContentView(int id)
@Fullscreen//全屏
@WindowFeature(Window.FEATURE_NO_TITLE)//移除标题栏
//同理,对于Fragment:@EFragment,普通类:@EBean
public class MainActivity extends AppCompatActivity
/**
* 引入控件
* 注意:变量名与xml中的id一致时,不需要加R.id.textShow
*/
@ViewById
TextView textShow;
/**
* 变量名与xml中声明的id不一致时,需要添加R。id。button
*/
@ViewById (R.id.button)
Button mButton;
/**
* 引入String 资源,id的使用同上
*/
@StringRes
String btText;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState)
super.onCreate(savedInstanceState);
//查看 MainActivity_ 的 onCreate() 方法,其
//先执行 super.onCreate(savedInstanceState)方法
//再执行setContentView(R.layout.activity_main) 方法
//所以在 MainActivity 的 onCreate() 方法中不要涉及任何与 layout 控件相关的操作
/**
* 开始使用控件
* 注意:不要在onCreat()方法中调用注解得到的控件
* 因为onCreat()在执行时view还没有注入,会导致空指针异常
*/
@AfterViews
void initView()
textShow.setText("AA注解的使用");
mButton.setText(btText);
/**
* 点击事件,同理,长按:@LongClick,触摸:@Touch
*/
@Click
void button()//button就是按钮的id,此处可以修改其他的,但是注解上必须注明R.id.button
Toast.makeText(this, "开始", Toast.LENGTH_SHORT).show();
//执行耗时操作
doInBack();
/**
* 子线程执行耗时操作,比如网络请求
*/
@Background
void doInBack()//注意:该方法在子线程执行,如果更新ui会报错
try
//模拟耗时操作
Thread.sleep(2000);
//执行在主线程的方法
doInUiThread("耗时操作完毕");
catch (InterruptedException e)
e.printStackTrace();
/**
* 在主线程更新ui
*/
@UiThread
void doInUiThread(String s)
mButton.setText(s);
C:这一步一定要执行,
修改清单文件在Activity后面加一个_,具体原因请自行百度
<activity android:name=".MainActivity_">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
接下来就可以运行了,
but~but~你一定会发现跑不起来
编译完项目在run,你就发现可以神奇的跑起来了
最后附上demo的下载地址
以上是关于androidannotations 注解框架的配置及使用教程的主要内容,如果未能解决你的问题,请参考以下文章
Android 最火的高速开发框架AndroidAnnotations使用具体解释