Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用RoboGuice在我的活动中注入类_Android_Roboguice - Fatal编程技术网

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

Android 使用RoboGuice在我的活动中注入类,android,roboguice,Android,Roboguice,我刚开始使用roboguice,在应用程序中配置注入时遇到了困难 假设我有以下接口 public interface IAPICall{ void doSomething(); } public class MyApiCall implements IAPICall{ public void doSomething(){ } } public class MyMockApicall implements IAPICall{ public vo

我刚开始使用roboguice,在应用程序中配置注入时遇到了困难

假设我有以下接口

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



 public class MyMockApicall implements IAPICall{
       public void doSomething(){
       }
    }
我有两种不同的接口实现

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



 public class MyMockApicall implements IAPICall{
       public void doSomething(){
       }
    }
现在,我的要求是将接口注入到我的活动中。如何配置注入的具体类。在测试期间,我希望注入模拟类,而在生产期间,我希望注入实际类。我如何配置它


在您的GUI配置模块中:

public class GuiceConfigurationModule extends AbstractModule {
...
    @Override
protected void configure() {
        ...
        bind(IAPICall.class).to(MyApiCall.class);
        ...
    }
...
}
在您的活动中:

@Inject
IAPICall someApiCall;
在测试期间使用模拟接口的最佳方法是创建一个测试模块,其中绑定指向模拟类。有一个关于机器人分子的教程 关于如何做到这一点

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

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

com.stackoverflow.test.guiceConfiguration模块
这里描述了这一点:


在您的GUI配置模块中:

public class GuiceConfigurationModule extends AbstractModule {
...
    @Override
protected void configure() {
        ...
        bind(IAPICall.class).to(MyApiCall.class);
        ...
    }
...
}
在您的活动中:

@Inject
IAPICall someApiCall;
在测试期间使用模拟接口的最佳方法是创建一个测试模块,其中绑定指向模拟类。有一个关于机器人分子的教程 关于如何做到这一点

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

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

com.stackoverflow.test.guiceConfiguration模块
这里描述了这一点:


那么,在应用程序中,您将GuiceConfiguration模块挂接在哪里?今天,两个链接都已失效:(那么,在应用程序中,您将GuiceConfiguration模块挂接在哪里?今天,两个链接都已失效:(