2014-01-16 107 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中指定的任何地方工作。 –