FirstActivity - PerfectCarl/androidannotations GitHub Wiki
Now that your project is configured to use AndroidAnnotations, let's have fun with it!
- Create a new activity (or use an already existing one)
- Use
@EActivity
,@ViewById
and@Click
on the activity, following this example :
import android.app.Activity;
import android.widget.EditText;
import android.widget.TextView;
import com.googlecode.androidannotations.annotations.Click;
import com.googlecode.androidannotations.annotations.EActivity;
import com.googlecode.androidannotations.annotations.ViewById;
@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);
}
}
The main.xml layout works as usual :
<?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>
-
Save the file (Eclipse will compile it, and generate a subclass of
MyActivity
, namedMyActivity_
) -
Register
MyActivity_
instead ofMyActivity
in your manifest :
<activity android:name=".MyActivity_" />
The AndroidManifest.xml
You should always register your activity with an _
suffix in the Android Manifest.
This is because AndroidAnnotations generates a subclass for each annotated activity. It has the same package and name, plus an _
suffix.
AndroidAnnotations will tell you if you forget to register your activities in the AndroidManifest.xml
.
Finding the AndroidManifest.xml
AndroidAnnotations finds the AndroidManifest.xml
file by recursively going up from the generated source folder.
Since AndroidAnnotations 2.7
If this doesn't fit your project structure, you can specify the absolute path to the AndroidManifest.xml
by giving an androidManifestFile
option to the processor.
- With javac, just pass the following option:
-AandroidManifestFile=/path/to/AndroidManifest.xml
- With Eclipse, go to
Properties > Java Compiler > Annotation Processing
and add an entry toProcessor options
.
To learn more about what you can do with AndroidAnnotations, read the Cookbook and the list of available annotations