Как передать функцию в качестве аргумента целевому фрагменту - Android Компонент навигации - PullRequest
2 голосов
/ 02 августа 2020

У меня есть класс, расширяющий DialogFragment, который я хотел бы использовать в качестве пункта назначения в моем навигационном графе, чтобы я мог открыть его, как любой другой фрагмент. Я хотел бы передать функции в качестве аргументов моему классу DialogFragment, который будет использоваться в слушателях положительных и отрицательных кнопок. В этом случае это будут функции из вызывающего фрагмента.

Итак, можно ли передавать функции в качестве аргументов в пункт назначения компонента навигации, или есть другой способ go сделать это. Нужна ли DialogFragment собственная ViewModel?

1 Ответ

0 голосов
/ 03 августа 2020

В итоге я сделал это с помощью общей ViewModel, как предлагал @CommonsWare.

ViewModel настроен следующим образом:

class ViewModel(application: Application) : AndroidViewModel(application) { }

, и он создается следующим образом , используя requireActivity() в обоих фрагментах, которые используют его, чтобы убедиться, что он действует как синглтон, поскольку эти фрагменты совместно используют родительскую активность.

val viewModel = ViewModelProvider(requireActivity()).get(ViewModel::class.java)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...