У меня есть приложение, в котором у меня есть три действия. Первое и второе действие имеют listview. Мне нужны выбранные значения из первого и второго действия, чтобы отобразить некоторые данные в третьем действии. Каков наилучший способ сделать это? Лучше ли передавать Intent от первого до второго действия, затем от второго до третьего действия или использовать SharedPrefenreces?Передача данных через несколько действий в android
ответ
Это зависит от того, что вам нужно. Если вам нужно, чтобы данные были постоянными в случае уничтожения вашего приложения, то вы, вероятно, захотите сохранить данные в SharedPreferences
(также будет зависеть от того, какие типы данных с SharedPrefs
не ограничены тем, что они могут хранить) или БД.
Если вы не беспокоитесь о том, что это постоянный, то передача данных через Intent.putExtra()
в порядке. Вы также можете создать Bundle и передать Bundle
через Intent
и добавить данные по мере их поступления.
У вас также есть возможность создать отдельный класс, который implements Serializable
. Затем вы можете создать и передать класс Object
через свой Intents
. Here is a post about doing that
На мой взгляд, было бы проще создать класс ArrayManager, в котором ваши переменные являются статическими. Таким образом, вы можете создавать методы для выбора и изменения размера массивов в классе ArrayManager. Единственный случай, когда это плохо, - это если вы должны хранить ссылки на Views, Contexts или Activities (это создаст утечку памяти). В этом случае решение codeMagic идеально.
Да это может быть достигнуто разными способами, используя:
- Intents
- Общие предпочтения
- SQLITE
Sqlite: Вы можете использовать Sqlite для хранения данных, если данные огромна в первой и второй активности и получать данные в третьем деятельности (Но если данные меньше это не является допустимым решением)
Shared Предпочтения: Здесь данные, сохраненные в общих настройках, выполняются в XML-файле, поэтому даже если приложение находится в состоянии , данные не сохраняются. Это полезно для сохранения паролей и регистрационные данные и т.д.
Intents: Мое мнение Передача данных с фактически намного лучший вариант в вашем случае, поскольку размер данных, передаваемых между вашим первый, второй к третьей деятельности Меньше.
Finalizing
:: Просто поместите данные в пачке в первой деятельности.Затем получите данные (Bundle) во втором действии и добавьте данные во вторую активность в дополнение к данным в комплекте, полученном от первой активности, и передайте этот последний пакет из второй активности в третью активность.
В вашем случае, если вам нужно передать те же данные из первой активности во вторую активность, а затем третью деятельность & ваши данные небольшие, то я предлагаю использовать Shared Preferences
.
Если данные, переданные от первой активности во вторую активность, не являются одними и теми же данными второго действия для третьей активности, а просто используют намерение.
Есть трюки. Если вашему второму действию всегда нужны данные из первой активности для работы, тогда, когда вы хотите вернуться к третьей активности во вторую активность, вы застрянете, потому что из третьего действия вы не сможете получить первый результат активности. В этом случае сохранение данных i означает Shared Preferences
или Sqlite
.
Все вышеприведенные сценарии необходимо найти для себя, что лучше всего использовать для вашего приложения.
- 1. Несколько действий, запуск и передача данных
- 2. Несколько действий в Android
- 3. Android: передача данных через ContentIntent
- 4. Пропуск строк через несколько действий
- 5. Передача данных через вкладки в android
- 6. Передача данных через сокет в Android
- 7. автоматическая передача данных в Android через Bluetooth
- 8. Android EditText несколько действий
- 9. Передача данных между проблемами действий
- 10. Передача данных через аудиоразъем
- 11. Передача soundpool для нескольких действий в Android
- 12. Передача данных через USB с Android-смартфоном
- 13. Передача данных от действий в редукторе
- 14. несколько действий в форме через javascript
- 15. (Android) Передача ресурсов/действий с намерением
- 16. Android - передача данных через TCP/IP
- 17. Несколько кнопок. Передача действий на следующую кнопку в Java
- 18. Несколько действий на экране Android?
- 19. Передача данных между методами действий ASP.NET
- 20. Передача FM через android
- 21. Передача данных через JFrames
- 22. Передача данных через USB
- 23. Передача данных через datagrid
- 24. Передача данных через ajax
- 25. Передача данных через iFrame
- 26. Передача данных через кабель аудиоразъема через два устройства Android
- 27. Передача данных через интернет
- 28. Передача данных через NavigationController
- 29. Передача данных через segue
- 30. Передача данных через стек