Android 使用roboguice将依赖项注入视图

Android 使用roboguice将依赖项注入视图,android,guice,roboguice,Android,Guice,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

活动字段:

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
}

问题是:
myView
myDependency
都被注入到活动中,但是
myDependency
没有被注入到视图中。为什么?

视图是由Android框架实例化的,而不是由Roboguice实例化的。您可以使用注入视图的成员,但我会尝试从视图内部避免Guice依赖项。

Roboguice的
@InjectView
不会自动用注入器注入依赖项,这不是很奇怪吗?然而,当我手动调用
injectMembers
时,它确实可以工作。为什么要避免这种情况?这并不奇怪,因为视图的行为不应该取决于关联的活动是否有
@InjectView
。视图应该在XML中指定的任何位置工作。