3.然后设置项目属性:右键->Properties->Java Compiler->Annotation Processing 在该页面选中Enable project specific settings。
然后点击Annotation Processing的子项Factory Path页面,选中Enable project specific settings,然后添加编译所需的jar包。点击“Add JARs”将之前complie-libs目录下的androidannotations-3.0.1.jar导入,保存后退出。
4.下面我们就看一下如下代码首先是布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <EditText android:id="@+id/myInput" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Click me!" /> <TextView android:id="@+id/myTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
package com.example.testaa; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import android.app.Activity; import android.content.Intent; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; @EActivity(R.layout.activity_main) public class MainActivity extends Activity { @ViewById(R.id.myInput) EditText myEditText; @ViewById Button myButton; @ViewById TextView myTextView; /** * 加载完View之后进行的处理 */ @AfterViews void afterViewProcess(){ myButton.setText("Next"); myTextView.setText("第一个Activity页面"); } /** * 绑定点击事件 */ @Click(R.id.myButton) void processClick(){ Intent intent=new Intent(this,SubActivity_.class); intent.putExtra("input_value", myEditText.getEditableText().toString()); startActivity(intent); } /** * 利用UI线程显示一个Toast * @param content */ @UiThread void showToast(String content){ Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT).show(); } /** * 延时显示 * @param content */ @UiThread(delay=1000) void showToastDelay(String content){ Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT).show(); } }
注解1:@ViewById 与findViewById功能相似,如果ViewById后没有设置资源ID的话,就是自动查找与变量名称相同的id资源。
注解2:@Click 点击事件处理的注解。
注解3:@UiThread 后台Ui线程的注解,省去了Handler等等。
注解4:@EActivity 提示Activity的注解,注意,该注解将Activity编译成Activity_,注意,多一个下划线“_”,因此在AndroidManifest.xml文件中需要将其添加下滑线
注解5:@AfterViews 是指View类注入完毕之后执行的代码。
我们第二个页面的布局文件与第一个相同,我们主要看一下它的java文件
/* * $filename: SubActivity.java,v $ * $Date: 2014-4-15 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */ package com.example.testaa; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import android.app.Activity; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; /* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: [email protected] *2014-4-15 Nanjing,njupt,China */ @EActivity(R.layout.activity_sub) public class SubActivity extends Activity{ @ViewById(R.id.myInput) EditText myEditText; @ViewById Button myButton; @ViewById TextView myTextView; @Extra(value="input_value") String inputString; @AfterViews void afterViewProcess(){ myTextView.setText(inputString); } @Click(R.id.myButton) void processClick(){ showToast("Clicked me !"); } @UiThread void showToast(String content){ Toast.makeText(getApplicationContext(), content, Toast.LENGTH_SHORT).show(); } }
下面是AndroidManifest.xml文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testaa" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.testaa.MainActivity_" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.testaa.SubActivity_"></activity> </application> </manifest>
整个项目下载地址:http://download.csdn.net/detail/nuptboyzhb/7199005
框架的其他注解:https://github.com/excilys/androidannotations/wiki/AvailableAnnotations