Как внедрить класс Presenter, у которого интерфейс является параметром конструктора, в классе Activity с помощью кинжала 2? - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужно внедрить класс Presenter внутри действия с помощью Dagger2, но для создания экземпляра класса Presenter мне нужно передать интерфейс в качестве параметра из Activity.

Без использования dagger2:

 Interface interface;
 interface = this;
 Presenter presenter = new Presenter(interface);

Как этого добиться с помощью Dagger2?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы должны предоставить Activity в вашем методе @Provides.Как сделать вашу деятельность действительно доступной, зависит от того, как вы реализовали DI с Dagger.

Если вы используете @ContributesAndroidInjector, то у вас есть автоматический доступ к вашей активности в вашем @Module, и вы можете просто назвать ее в своем @Предоставляет аргументы метода.Помните, что вы должны использовать свой точный класс деятельности.

Укажите ведущего так:

@Provides
Presenter providePresenter(YourActivityName activity) {
    return new Presenter((Interface) activity);
}
...