@EActivity
原来在没用(AndroidAnnotations)之前,我们写代码是这样写:
public class TestActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); }}
不过有了AndroidAnnotations之后,我们可以这样写,[email protected]
@EActivity(R.layout.activity_test)public class TestActivity extends Activity {// @Override// protected void onCreate(Bundle savedInstanceState) {// super.onCreate(savedInstanceState);// setContentView(R.layout.activity_test);// }}
当然,上面的注释就不用写了

[email protected],你还有修改“AndroidManifest.xml”,在TestActivity类名后,加个“_”
<activity android:name=".TestActivity_" android:label="@string/title_activity_test" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>
@EApplication
@EApplicationpublic class MyApplication extends Application { public void onCreate() { super.onCreate(); }}
当然了“AndroidManifest.xml”这个文件还是要修改的,同样也是要加“_”
<application android:name=".MyApplication_" ></application>
@App
没有这个注解我们要这么写代码:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity { private MyApplication_ app; TextView tvTest = null; @AfterViews void afterView(){ tvTest = (TextView)this.findViewById(R.id.tv_test); app = (MyApplication_) getApplication(); tvTest.setText(app.getValue()); }}
[email protected],我们可以这样写:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity { TextView tvTest = null; @App MyApplication app; @AfterViews void afterView(){ tvTest = (TextView)this.findViewById(R.id.tv_test); tvTest.setText(app.getValue()); }}
@ViewById
这个注解可能是我们用到的最常用一个了,每次我们写的最多的代码都是this.findViewById,这个注解可以帮助我们省去不少的工作。
如前一个例子
public class TestActivity extends Activity { TextView tvTest = null; @App MyApplication app; @AfterViews void afterView(){ tvTest = (TextView)this.findViewById(R.id.tv_test); tvTest.setText(app.getValue()); }}
现在我们的代码也可以这么写:
@EActivity(R.layout.activity_test)public class TestActivity extends Activity { @App MyApplication app; @ViewById(R.id.tv_test) TextView tvTest; @AfterViews void afterView(){ tvTest.setText(app.getValue()); }}
当然了如果你的变量名与R.id.tv_test的名称一致,你也可以这下写,这样我们又省去了不少的代码量:
@ViewById(R.id.tv_test)TextView tvTest;@ViewByIdTextView tv_test;