AndroidAnnotations(以下AA)の基本的な使い方を説明します。
AAの設定がされていない場合は以下のリンクを参考に設定してください。
事前準備 AndroidAnnotations | b.fly1tkg.com
@EActivityをつける
AAをActivityで使用するにはクラスに@EActivityをつける必要があります。
@EActivity
public class MyActivity extends Activity {
そしてAndroidManifest.xmlへのActivityの登録は_のsuffixが必要になります。
<activity android:name=".MyActivity_" />
これは上記の例で言うとMyActivityを継承したMyActivity_というクラスがAAによって生成され、MyActivity_で色々と便利なコードが生成されるからです。
AAでHelloWorld
次のようなコードでAAを使ったHello Worldを作成することが出来ます。
詳しくはEActivityのエントリーで説明します。
MyActivity.java
@EActivity(R.layout.main)
public class MyActivity extends Activity {
@ViewById(R.id.myInput)
EditText myInput;
@ViewById(R.id.myTextView)
TextView textView;
@Click
void myButton() {
String name = myInput.getText().toString();
textView.setText("Hello "+name);
}
}
main.xml
<?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>
まず@EActivity(R.layout.main)でres/layout/main.xmlのレイアウトを適用出来ます。
また@ViewById(R.id.myTextView)でmain.xmlのidがmyTextViewのTextViewのインスタンスが自動的に代入されます。これでfindViewById(R.id.myTextView)といったコードを書かなくてもよいです。
@Clickはメソッド名と同じIDのViewがクリックされたときの処理を指定しています。ここではmyButtonがクリックされた時にmyTextViewにテキストを表示することをしています。@Click(R.id.myButton)のようにIDを指定することも出来ます。