使用RoboGuice在我的活动中注入类

时间:2013-04-04 13:32:34

标签: android roboguice

我是使用roboguice的新手,我很难在我的应用程序中配置注入。

假设我有以下界面

public interface IAPICall{
         void doSomething();
}

我的界面有两种不同的实现

public class MyApiCall implements IAPICall{
   public void doSomething(){
   }
}



 public class MyMockApicall implements IAPICall{
       public void doSomething(){
       }
    }

现在我的要求是我想将界面注入我的活动中。我如何配置注入哪个具体类。在测试期间,我想在生产期间注入我的模拟类,我想注入实际的类。我该如何配置?

亲切的问候

1 个答案:

答案 0 :(得分:1)

在你的guice配置模块中:

public class GuiceConfigurationModule extends AbstractModule {
...
    @Override
protected void configure() {
        ...
        bind(IAPICall.class).to(MyApiCall.class);
        ...
    }
...
}

在您的活动中:

@Inject
IAPICall someApiCall;

在测试期间使用模拟接口的最佳方法是创建一个测试模块,其中绑定指向模型类。 Robolectric有一个教程 如何做到这一点。

http://pivotal.github.com/robolectric/roboguice.html

要将模块添加到应用程序,请在值ressources文件夹中添加roboguice.xml文件:

 <?xml version="1.0" encoding="utf-8"?>
  <resources> 
    <string-array name="roboguice_modules">
        <item>com.stackoverflow.test.GuiceConfigurationModule</item>
    </string-array>
  </resources>

这里描述:

http://code.google.com/p/roboguice/wiki/UpgradingTo20