2014-09-29 2 views
0

У меня есть приложение, в котором у меня есть три действия. Первое и второе действие имеют listview. Мне нужны выбранные значения из первого и второго действия, чтобы отобразить некоторые данные в третьем действии. Каков наилучший способ сделать это? Лучше ли передавать Intent от первого до второго действия, затем от второго до третьего действия или использовать SharedPrefenreces?Передача данных через несколько действий в android

ответ

1

Это зависит от того, что вам нужно. Если вам нужно, чтобы данные были постоянными в случае уничтожения вашего приложения, то вы, вероятно, захотите сохранить данные в SharedPreferences (также будет зависеть от того, какие типы данных с SharedPrefs не ограничены тем, что они могут хранить) или БД.

Если вы не беспокоитесь о том, что это постоянный, то передача данных через Intent.putExtra() в порядке. Вы также можете создать Bundle и передать Bundle через Intent и добавить данные по мере их поступления.

У вас также есть возможность создать отдельный класс, который implements Serializable. Затем вы можете создать и передать класс Object через свой Intents. Here is a post about doing that

0

На мой взгляд, было бы проще создать класс ArrayManager, в котором ваши переменные являются статическими. Таким образом, вы можете создавать методы для выбора и изменения размера массивов в классе ArrayManager. Единственный случай, когда это плохо, - это если вы должны хранить ссылки на Views, Contexts или Activities (это создаст утечку памяти). В этом случае решение codeMagic идеально.

1

Да это может быть достигнуто разными способами, используя:

  • Intents
  • Общие предпочтения
  • SQLITE

  1. Sqlite: Вы можете использовать Sqlite для хранения данных, если данные огромна в первой и второй активности и получать данные в третьем деятельности (Но если данные меньше это не является допустимым решением)

  2. Shared Предпочтения: Здесь данные, сохраненные в общих настройках, выполняются в XML-файле, поэтому даже если приложение находится в состоянии , данные не сохраняются. Это полезно для сохранения паролей и регистрационные данные и т.д.

  3. Intents: Мое мнение Передача данных с фактически намного лучший вариант в вашем случае, поскольку размер данных, передаваемых между вашим первый, второй к третьей деятельности Меньше.


Finalizing :: Просто поместите данные в пачке в первой деятельности.Затем получите данные (Bundle) во втором действии и добавьте данные во вторую активность в дополнение к данным в комплекте, полученном от первой активности, и передайте этот последний пакет из второй активности в третью активность.

0

В вашем случае, если вам нужно передать те же данные из первой активности во вторую активность, а затем третью деятельность & ваши данные небольшие, то я предлагаю использовать Shared Preferences.

Если данные, переданные от первой активности во вторую активность, не являются одними и теми же данными второго действия для третьей активности, а просто используют намерение.

Есть трюки. Если вашему второму действию всегда нужны данные из первой активности для работы, тогда, когда вы хотите вернуться к третьей активности во вторую активность, вы застрянете, потому что из третьего действия вы не сможете получить первый результат активности. В этом случае сохранение данных i означает Shared Preferences или Sqlite.

Все вышеприведенные сценарии необходимо найти для себя, что лучше всего использовать для вашего приложения.

Смежные вопросы