Страница 1 из 1

DialogFragment не пустой конструктор

Добавлено: 17 июн 2015, 12:07
Midvidko
Почему нельзя в конструкторе DialogFragment передавать параметры? Мне нужно передать интерфейс, как это правильно сделать?
Делать implement интерфейса в активити и получать его из getActivity не годится т.к. должны назначаться разные слушатели в зависимости от нажатой кнопки создающей этот диалог.

Re: DialogFragment не пустой конструктор

Добавлено: 17 июн 2015, 14:05
klblk
Нельзя передавать в конструктор, потому что система при восстановлении фрагмента (например после поворота экрана) вызывает конструктор без параметров, как следствие ваш слушатель потеряется. Хотя на практике вроде бы вылетит Exception.

Попробую предложить варианты решения:
1) Передавать через аргументы нужную информацию и в зависимости от них формировать интерфейс уже в самом фрагменте.
2) Сделать у фрагмента метод setMyInterface()
3) Унифицировать интерфейс заимплеменченный у Activity (завести дополнительную int переменную значение которой будет меняться в зависимости от нажатой кнопки и в реализациях методов интерфейса switch-case'ом все разруливать)
4) *тут еще какой-нибудь более правильный метод*