Презентатор вложенного представления не инициализируется и не может обрабатывать события своего представления

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

Спасибо.


person Nitish Borade    schedule 03.10.2012    source источник
comment
Можете ли вы предоставить какой-либо пример кода? Какую ошибку вы получаете?   -  person The Cat    schedule 03.10.2012


Ответы (1)


Если вы пытаетесь внедрить одно и то же представление в несколько классов, помните, что вы должны пометить его как @Singleton или иным образом убедиться, что оба класса получают один и тот же экземпляр. По умолчанию Guice и Gin создают новый экземпляр каждый раз, когда вы внедряете класс. По вашему описанию сложно сказать, но вы, возможно, добавляете прослушиватель событий к экземпляру, которым владеет докладчик, а затем отображаете другой экземпляр в своем приложении.

person Jeff Bowman    schedule 03.10.2012