Skip to content
This repository

RoboGuiceIntegration 

pyricau edited this page · 7 revisions

12/01/2014 The 3.0.1 release is out !

Using AndroidAnnotations

Questions?

Enjoying AndroidAnnotations

Improving AndroidAnnotations

Clone this wiki locally

Since AndroidAnnotations 1.0

AndroidAnnotations fully integrates with RoboGuice 1.1.1.

If you have any problems integrating AndroidAnnotations with versions of RoboGuice superior to 1.1.1, please let us know so that we can fix it.

Android Annotations Logo Roboguice Logo

Integrating RoboGuice and AndroidAnnotation

  1. Add AndroidAnnotations to your project.
  2. Add RoboGuice to your project.
  3. Instead of having activities that inherit from RoboActivity, simply annotate them with @RoboGuice.
  4. 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 by RoboGuice. 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, @UiThreadDelayed, @ItemSelected, etc.
Something went wrong with that request. Please try again.