Согласно документации у вас есть два варианта отображения DialogFragment
, либо в виде Диалога («всплывающее окно»), либо Встраивания
Выбор между диалогом или внедрением
DialogFragment по-прежнему можно использовать как обычный фрагмент, если
желательно. Это полезно, если у вас есть фрагмент, который в некоторых случаях
должен отображаться в виде диалога, а другие встроены в больший пользовательский интерфейс. это
поведение обычно будет автоматически выбираться для вас на основе того, как
вы используете фрагмент, но можете настроить его
setShowsDialog (булево).
ref: https://developer.android.com/reference/android/app/DialogFragment
Диалоги предназначены для использования в качестве "всплывающих окон" *, которые обычно уничтожаются после увольнения. Эта опция потребует передачи ссылки на данные / модель / объект, находящиеся в ExapandableListView
(или некотором дочернем элементе, как вы упомянули). Этот объект должен был бы выставить все необходимые установщики / получатели, чтобы его значения / состояние управлялись DialogFragment
.
Если вы идете по этому пути, то почему бы не получить исходные данные (метрик упражнений) таким же образом - путем передачи ссылки на пустой объект - если только нет другой причины иметь особый случай для первоначального получения данных не упомянуто? Таким образом, ваш механизм получения и редактирования данных будет идентичен.
Хорошая статья для передачи ссылок на объекты через пакет / посылку здесь https://medium.com/@hamidgh/sending-objects-to-fragment-naive-question-is-it-sent-by-value-ddaaa19fa42d.
Внедрение позволит пользователю редактировать данные на месте, устраняя необходимость во всплывающем окне, но для этого может потребоваться больше места, чем доступно, поскольку данные / поля должны быть достаточно большими редактировать с разумной легкостью.
Однако, используя то, что у вас уже есть, есть ли причина, по которой вы не можете просто вернуть отредактированные данные, так же, как это делается при первоначальном вводе, вы, кажется, правильно используете Bundle
для отправки значений обратно диалоговое окно для редактирования, поэтому я не вижу проблем там?