@EActivityのアノテーションをつけることでそのActivity内でAndroidAnnotations(以下AA)が使えるようになります。以下のようにActivityに@EActivityをつけます。
@EActivity(R.layout.main) public class MyActivity extends Activity { }
ListActivityなどレイアウトを指定しない場合はそのままつければOKです。
@EActivity public class MyListActivity extends ListActivity { }
@EActivityをつけると元のクラスを継承し、_のsuffixがついたコードが生成されます。そのためAndroidManifest.xmlに登録する際は最後に_をつけます。
<activity android:name="MyActivity_"/>
IntentBuilder
EActivityではAAが使える以外に特徴的なこととして、IntentBuiderというものが自動で生成されるということです。
例えば通常ActivityにIntentする時は以下のようなコードを書くと思います。
Intent i = new Intent(this, MyActivity.class); startActivity(i);
このIntentBuilderを使うと次のような書き方が出来ます。
new MyActivity_.IntentBuilder_(this).start();
IntentBuilderよってIntentでの値の受け渡しは、@Extraがついたデフォルトのメンバ変数に対してsetterが準備されます。
以下のようなMainActivityに遷移使用とする時
@EActivity(R.layout.activity_main) public class MainActivity extends Activity { @Extra String name; @Extra int id; }
Intentするためのコードは以下のようになります。
new MainActivity_.IntentBuilder_(this) .name("answer") .id(42) .start();
IntentのFlagもセットすることも出来ます
new MainActivity_.IntentBuilder_(this) .flags(Intent.FLAG_ACTIVITY_CLEAR_TOP) .start();