gpt4 book ai didi

android - 使用 RoboGuice 在我的 Activity 中注入(inject)类

转载 作者:行者123 更新时间:2023-11-30 03:40:32 25 4
gpt4 key购买 nike

我刚开始使用 roboguice,我很难在我的应用程序中配置注入(inject)。

假设我有如下界面

public interface IAPICall{
void doSomething();
}

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

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



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

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

亲切的问候

最佳答案

在你的 guice 配置模块中:

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

在你的 Activity 中:

@Inject
IAPICall someApiCall;

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

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

要将模块添加到应用程序,请在值资源文件夹中添加一个 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

关于android - 使用 RoboGuice 在我的 Activity 中注入(inject)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15812792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com