Android и API результатов фрагментов. Как поделиться результатом дочернего фрагмента с другим ключом запроса?
Я пытаюсь реализовать API результатов фрагментов в своем приложении. Мне нужно показать DialogFragment внутри фрагмента и отправить результат из фрагмента диалога во фрагмент при нажатии кнопок диалога. Итак, в моем фрагменте диалога при нажатии кнопки я делаю что-то вроде этого:
setFragmentResult(requestKey, bundleOf(RESULT to result))
И я пытаюсь получить результат в своем фрагменте внутри:
childFragmentManager.setFragmentResultListener(requestKey, this) { _, bundle ->
val result = bundle.getInt(DialogFragment.RESULT)
// some code
}
Все работает хорошо, но есть одна проблема. Я использую при вызове
То есть диалог внутри фрагмента может открываться в разных случаях. И мне нужно различать эти случаи. Для этого я отправляю во фрагмент диалога другой ключ запроса. Но как мне при получении результата во фрагменте отличить этот результат по ключу. Если я сделаю это внутри
То есть я хочу сделать что-то вроде этого:
childFragmentManager.setFragmentResultListener(requestKey, this) { requestKey, bundle ->
when(requestKey) {
"FIRST_CASE" -> { // some code }
"SECOND_CASE" -> { // some code }
}
}
Но я не понимаю, как это можно реализовать, если этот метод (
Если бы мой был статическим, я бы создал константу внутри фрагмента диалога и использовал ее. Но мой
Помогите мне, пожалуйста. В интернете не нашел подходящего для меня примера. И на данный момент я не понимаю, как это можно реализовать в контексте чистой архитектуры с MVVM.
PS Вот пример того, что я хочу реализовать: Фрагмент, который содержит две кнопки (например,