2014-01-16 108 views
0

活动领域的观点:依赖注入与roboguice

public class MyActivity extends RoboActivity { 
    @InjectView(R.id.my_view) 
    protected MyView myView; 

    @Inject 
    private MyDependency myDependency; 

    // onCreate etc 
} 

视野:

public class MyView extends FrameLayout { 
    @Inject 
    private MyDependency myDependency; 

    // constructors etc 
} 

的问题是:既myViewmyDependency注入活动,但myDependency没有注入风景。为什么?

回答

1

视图由Android框架实例化,而不是由Roboguice实例化。你可以使用Injector.injectMembers来注入视图的成员,但我会尽量避免从视图内的Guice依赖。

+0

Roboguice的'@InjectView'不会自动注入依赖关系吗?尽管如此,当我手动调用'injectMembers'时,确实有效。我为什么要避免这种情况? – fracz

+0

这并不奇怪,因为视图的行为不应该依赖于相关活动是否具有“@InjectView”。视图应该在XML中指定的任何地方工作。 –