使用Roboguice注入没有默认构造函数的依赖项

时间:2012-06-04 18:47:28

标签: android roboguice

如果我有一个带有单个构造函数的类,我怎样才能让Roboguice将其注入活动?

要注入的服务:

public FlightManager(Context context){
    //do something with the context
}

活动:

public class recordFlight extends RoboActivity {

    @InjectResource FlightManager manager;

  //whatever code here
}

唯一的依赖是Context,我收集的应该没有问题注入。另外,我的所有其他用法,例如带有默认构造函数的@InjectView和@Inject类看起来都很好,但上面的用法会杀死应用程序,甚至不会给我一个堆栈跟踪。

有什么想法吗?

由于

乔恩

1 个答案:

答案 0 :(得分:3)

使用@Inject批注标记构造函数:

@Inject
public FlightManager(Context context){
    //do something with the context
}

然后像这样注入FlightManager:

public class recordFlight extends RoboActivity {

    @Inject FlightManager manager;

    //whatever code here
}

这里不需要@InjectResource,因为它是您注入的常规Java类,而不是Android资源。