因此,我有一个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