Передать данные обратно к предыдущему фрагменту с помощью Android-навигации - PullRequest
2 голосов
/ 21 мая 2019

Я начал использовать компоненты архитектуры Android (навигационные и безопасные аргументы, модели просмотра) вместе с библиотекой Koin.

В настоящее время у меня проблема с передачей аргументов между двумя фрагментами - мне нужно передатьстроковое значение от фрагмента A до фрагмента B, измените это значение во фрагменте B и передайте его обратно фрагменту A.

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

Есть ли какие-либо другиерешение передачи и изменения данных между фрагментами в Android Navigation?Я хочу избежать очистки этого единственного значения вручную (когда фрагмент A уничтожен).

1 Ответ

0 голосов
/ 23 мая 2019

1) Передать строку из фрагмента A во фрагмент B с помощью action_A_to_B и SafeArgs.

2) popBackStack для удаления фрагмента B.

navController.popBackStack(R.id.AFragment, false);

или

navController.popBackStack();

3) Затем передайте измененные данные из B в A с помощью action_B_to_A.

РЕДАКТИРОВАТЬ.

Здесь у вас есть другое решение: введите описание ссылки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...