2

我想在我的 android 应用程序中包含匕首。我有两个类FakeServiceConnectorNetServiceConnector实现ServiceConnector接口

所以我把代码放在我的活动中

@Inject
ServiceConnector serviceConnector;

Abd 我为解决依赖关系创建提供程序

@Module
public class ServiceConnectorProvider {

 @Provides
 @Singleton
 public ServiceConnector provideServiceConnector()
 {
    return new FakeServiceConnector();
 }
}

但是当我按下按钮时 serviceConnector 为空。所以我的问题是:

1)我的库中只包含 dagger-1.1.0.jar 和 java.inject.jar 是否足以正确安装 dagger?

2)我是否需要编写比我为匕首编写的代码更多的代码,例如创建 Android

4

1 回答 1

4

是的,您需要编写更多代码才能使其正常工作。

首先,您必须在模块中指定要注入的类:

@Module(
    injects = YourClass.class
)

在您必须进行注射后:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider());
YourClass yourClassObject = objectGraph.get(YourClass.class);

或者:

ObjectGraph objectGraph = ObjectGraph.create(new ServiceConnectorProvider());
YourClass yourClassObject = new YourClass(...);
objectGraph.inject(yourClassObject);

在此处此处查看基本示例,或在GitHub 上搜索更多示例。

于 2013-09-10T06:38:06.280 回答