RoboGuiceIntegration - shiraji/androidannotations GitHub Wiki
Since AndroidAnnotations 1.0
AndroidAnnotations fully integrates with RoboGuice 1.1.1.
Since AndroidAnnotations 3.1
Since this release RoboGuice 1 support has been dropped in favor of RoboGuice 2.
Since AndroidAnnotations 3.3
Since this release RoboGuice 3 and newer is only supported.
Integrating RoboGuice and AndroidAnnotations
- Add AndroidAnnotations to your project.
- Add RoboGuice to your project.
- Instead of having activities that inherit from
RoboActivity
, simply annotate them with@RoboGuice
. - Looking for a working example ? Have a look RoboGuiceExample!
@EActivity(R.layout.main)
@RoboGuice({AstroListener.class, AnotherListener.class})
public class AstroGirl extends Activity {
@ViewById
EditText edit;
@Inject
GreetingService greetingService;
@Click
void button() {
String name = edit.getText().toString();
greetingService.greet(name);
}
}
public class AstroListener {
@Inject
Context context;
public void doSomethingOnResume(@Observes OnResumeEvent onResume) {
Toast.makeText(context, "Activity has been resumed", Toast.LENGTH_LONG).show();
}
}
What are the advantages of using RoboGuice?
RoboGuice brings the power of the Guice framework to your Android application. It means that you can benefit from dependency injection advantages : low coupling, higher maintainability.
What are the advantages of using AndroidAnnotations?
- Compile time injection of Android components (=> no perf impact)
- Extending
RoboActivity
is not needed any more. This basically mean that you can inherit from any activity class, even those not supported byRoboGuice
. Think about it if you want to use other frameworks that require you to extends their own base activity class. - Support for
@Click
,@Background
,@UiThread
,@ItemSelect
, etc.