Presenter Nested View не инициализируется и не может обрабатывать события своего представления
Я сталкиваюсь с проблемой, когда я внедряю вложенное представление в конструктор базового представления, используя @inject. Я не могу обрабатывать события вложенного представления в своем собственном презентаторе. Из-за чего мне нужно обработать их в презентаторе базового вида. У меня есть 2 представления и их соответствующие докладчики: AppBaseView - AppBasePresenter; LoginView - LoginPresenter. Я @ ввожу LoginView в AppBaseView. Теперь, когда мне нужно обработать событие "Кнопка входа", я не могу сделать это в LoginPresenter, но мне нужно обработать его в AppBasePresenter. Понятия не имею, почему это происходит. Я что-то пропустил? Любой свет по этому вопросу будет высоко оценен.
Благодарю.
1 ответ
Если вы пытаетесь внедрить одно и то же представление в несколько классов, помните, что вы должны пометить его как @Singleton
или иным образом убедитесь, что оба класса получают один и тот же экземпляр. По умолчанию Guice и Gin создают новый экземпляр каждый раз, когда вы вводите класс. По вашему описанию трудно сказать, но вы можете добавить прослушиватель событий в экземпляр, которым владеет докладчик, и затем отобразить другой экземпляр в вашем приложении.