@Ragnar0k
Енотик

Как передать ссылку из активити в фрагмент?

Доброго времени суток.
Встретился с такой проблемой, что необходимо передать ссылку на конкретный экземпляр класса (Bottom sheet если это играет роли) при создании, из активити ссылку нужно передать в фрагмент.
На моменте onViewCreated в фрагменте, ссылка обнуляется.
Пытался через сеттер, через синглтон - делать ради этого слушателя слишком много лишнего кода.
Доки говорят ,что конструктор строго запрещено переопределять.
Зачем нужно - в фрагменте находится ресайклер вью, в адаптере которого мне необходимо обрабатывать событие по нажатию кнопки.
vVPT.pngEW57.pngPu3c.png
ps скрин с initBottomSheet из активити, остальные из фрагмента.
  • Вопрос задан
  • 477 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
В общем, можно пойти двумя путями:
1) Создать некий интерфейс RecycleFragment.SomeEventListener с методом onSomeEvent();
Обязать активити реализовывать его , проверять в onAttach. При нажатии на кнопку прокидывать событие в активити, где есть behavior и там делать всё, что нужно.
2) Похожий сценарий, если без behavior'a во фрагменте ну прям никак. Аналогичный интерфейс, называем его BehaviorProvider, метод getBehavior() возвращает behavior. Активити реализует его и отдаёт behavior по запросу. Точно так же проверять в onAttach, не забывать удалять ссылку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы