Как общаться между двумя фрагментами - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь создать приложение Android, которое будет иметь два фрагмента. Один содержит список различных городов, а другой содержит подробную информацию об этих городах. Я новичок в мобильной разработке и мне сложно понять, как общаться между ними. Пока у меня есть список городов, сохраненных во фрагменте, но мне все еще нужно выяснить, как показать описание при нажатии на один из элементов списка. Также я не уверен, где описания будут даже храниться или как получить к нему доступ. Спасибо за любую помощь

Ответы [ 3 ]

1 голос
/ 28 января 2020

Это отличные видео от CodingInFlow, который объяснил, как на примере

https://www.youtube.com/watch?v=ACK67xU1Y3s

https://www.youtube.com/watch?v=i22INe14JUc

0 голосов
/ 28 января 2020

1. С помощью ViewModel

Процесс ViewModel очень прост, и вы можете узнать, как общаться между Фрагментами, используя ViewModel, читая наш общий блог ViewModel на MindOrks.

https://blog.mindorks.com/shared-viewmodel-in-android-shared-between-fragments

2. С помощью интерфейса

Создайте интерфейс в своем фрагментеA

Реализуйте интерфейс фрагмента A в своей деятельности

Вызовите метод Interface из своей Деятельности

В своей Деятельности вызовите свой FragmentB, чтобы внести необходимые изменения

0 голосов
/ 28 января 2020

2 Части к вопросу:

  1. Как связать фрагменты
  2. Как хранить данные для деталей

Для первой задачи Самое чистое решение - создать интерфейс https://developer.android.com/training/basics/fragments/communicating. По сути, наличие слушателя в одном фрагменте, который уведомляет другой фрагмент об обновлении. Или, проще говоря, не вдаваясь во все это, для кратковременного решения создайте функцию обновления или что-то подобное в вашем фрагменте данных. Поэтому, когда пользователь выбирает город во фрагменте списка, вы просто вызываете функцию обновления, передавая в качестве ключа название города.

Для второй проблемы. Коротким решением было бы создать карту ha sh, где ключи - это названия городов, а значения - детали. Поэтому, когда фрагмент информации получает название города, он может легко найти детали. Вы можете продолжать усложнять это по мере изменения ваших потребностей, например сохранять данные в отдельном файле и загружать их, иметь локальную базу данных значений ключей или даже иметь базу данных в облачной среде Firebase или AWS для обновления данных на муха.

...