Существует один основной вид деятельности (A
) и два фрагмента (F1
и F2
). Оба фрагмента получили заявление setRetainInstance(true);
. F2
имеет статическое поле b
. A
пробегает F1
. F1
запускает F2
с помощью диспетчера фрагментов после нажатия кнопки или что-то в этом роде. Поэтому создаю F2
intsance, задайте поле b
с помощью метода setter и поместите его в диспетчер фрагментов. Это хороший подход или нет? Использует ли пакет единственный «хороший» способ передачи данных между фрагментами? И что, если b
не является статическим? Это меняет ситуацию?Можно ли передавать данные между фрагментами?
ответ
Ваш путь ТАКЖЕ способ передачи данных между Fragments
НО следует использовать только в то время, когда мы должны Retain
в State
из Fragment
т.е., когда все мы хотим, чтобы сохранить состояние Fragment
таких в Button
собственности visible
и invisible
состояний мы используем setRetainInstance(true);
Фрагмент предназначается, чтобы быть независимым и многоразовые. Вы не должны использовать static для таких операций. Статическое поле не устраивает память управление тоже. Используйте пакет, который может быть полезным во многих отношениях, включая savedInstanceState
Только представьте себе ситуацию, когда вам нужно повторно использовать фрагмент В нескольких раз в одном экране. Это статическое поле не сможет хранить несколько значений. Не так ли?
Вы должны просто следовать стандартным практикам, поскольку они разработали его для обработки многих сценариев, которые мы, возможно, не знаем. Просто отправляйтесь на расслоение.
- 1. Как передавать данные между фрагментами?
- 2. Как передавать данные между фрагментами FragmentTabHost?
- 3. Android - Как передавать данные между фрагментами
- 4. Как передавать данные между двумя фрагментами, отображаемыми на экране?
- 5. Как я могу передавать данные между двумя фрагментами?
- 6. Как передавать данные между фрагментами при использовании вкладок и onTabSelected()?
- 7. Как передавать значения между фрагментами в android?
- 8. Можно ли передавать данные через rtmp?
- 9. Можно ли передавать данные между двумя плагинами JQuery?
- 10. Можно ли передавать данные между элементами с помощью события JavaScript?
- 11. Можно ли передавать параметры между проектами CC.NET?
- 12. Можно ли передавать переменные между таблицами стилей?
- 13. Можно ли передавать данные контроллеру с RouteConfig
- 14. Можно ли передавать данные в файл css?
- 15. Можно ли передавать данные в Firebase Analytics?
- 16. сохраняют данные постоянными между фрагментами
- 17. передавать данные между действиями
- 18. как сохранить данные между фрагментами
- 19. Как передавать данные между страницами
- 20. Как передавать данные между видами?
- 21. Передача данных между фрагментами
- 22. Передача объектов между фрагментами
- 23. Как передавать данные между действиями
- 24. Можно ли передавать виртуальные товары BlackBerry между устройствами?
- 25. Как передавать данные между видами?
- 26. Как передавать данные между ArrayLists?
- 27. , как передавать данные между Jquery
- 28. Как передавать данные между APIs
- 29. Как передавать данные между viewcontrollers
- 30. Как передавать данные между контроллерами
Я не понимаю вопроса, но обратимся к нескольким пунктам ... Во-первых, «Фрагмент» (например, «Активность» должен НИКОГДА не показывать какие-либо «публичные статические» поля или методы с намерением любого другого компонент приложения, к которому они обращаются. Во-вторых, если «F2» не является дочерним «фрагментом» «F1», тогда вся связь между ними должна выполняться с помощью «Активность». «Фрагмент» должен * НИКОГДА не создавать другой «Фрагмент», второй - ребенок. – Squonk
try eventbus otto http://square.github.io/otto/ –
Ближе к этому объясните причину – Tony