AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。使代码更加精简,使项目更加容易维护,它的目标就是“Fast Android Development.Easy maintainance”.
希望此篇能帮到大家,本系列教程目录:转载请链接并注明:转自 小树技术博客 .
AndroidAnnotations注解框架之介绍+配置(一) (飞机票)
[重要]关于Android Activity的介绍和用法:(飞机票)
1.使用 @EActivity 定义 Activity
@EActivity注释的Activity,其参数值必须是一个有效的布局资源id,将作为活动视图Content View的内容。
当然,你也可以不使用参数,让value为空,那么你就需要自己在onCreate()中进行视图的初始化
@EActivity(R.layout.main) public class MyActivity extends Activity { }
@EActivity public class MyListActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
2.注意事项
使用 @Activity 注解的 Activity ,与Fragment相同,都会由 AndroidAnnotations框架自动生成一个中间类,Activity_ ,这个类才是真正android系统识别
到和调用到的有内容的类,因此,任何跳转或者是注射,都应该使用这个类,例如:
@EActivity public class MyActivity extends Activity { // ... }
将在同一个包,但在另一个源文件夹下,产生以下子类
public final class MyActivity_ extends MyActivity { // ... }
这个子类将行为添加到您的活动覆盖一些方法,例如onCreate(),委托调用父类。
因此,AndroidManifest.xml中,你必须在所有使用@注解的Activity上,添加下划线_,如:
<activity android:name=".MyListActivity_" />
Q:如何启动一个带注释的activity?
A:
通常在安卓,你使用以下代码启动一个activity:
startActivity(this, MyListActivity.class);
但是,使用AA框架之后,你的启动代码就要改成:
startActivity(this, MyListActivity_.class);
AA也提供一个静态的助手,让你启动自动生成的activity:
// Starting the activity MyListActivity_.intent(context).start(); // Building an intent from the activity Intent intent = MyListActivity_.intent(context).get(); // You can provide flags MyListActivity_.intent(context).flags(FLAG_ACTIVITY_CLEAR_TOP).start(); // You can even provide extras defined with @Extra in the activity MyListActivity_.intent(context).myDateExtra(someDate).start(); 你可以使用 startActivityForResult() 获取 activity 的返回值 MyListActivity_.intent(context).startForResult();
Comments 1 条评论