因此,我有一個ApplicationComponent用於將單例注入到我的片段和演示者中,但我試圖創建一個組件以注入到AppComponent的同一個演示者確實。沿着這些線路的東西。如何使用Dagger 2將多個組件注入到同一個對象中
@Component{modules = FileManagerModule.class}
public interface FileManagerComponet
{
public void inject(MyPresenter presenter);
}
@Component{modules = AppModule.class}
public interface AppComponent
{
public void inject(MyPresenter presenter);
}
@Module
public class AppModule
{
private Context appContext;
@Provides
@Singleton
public SharedPreferences preferences()
{
return appContext.sharedPreferences();
}
...
}
@Module
public class FileManagerModule
{
private Context activityContext;
@Provides
public FileManager FileManager()
{
return new FileManager(activityContext);
}
...
}
此問題已被多次詢問,組件必須提供_all_字段,否則它將無法工作。您不能混用和匹配組件。例如檢查在這裏:http://stackoverflow.com/a/38897722/1837367 –
@DavidMedenjak那麼如果AppComponent正在構建應用程序創建時,並且沒有活動上下文,我怎麼能給FileManagerModule一個活動上下文? – Stampede10343