Передача пакетов через действия

У меня есть пакет, который я хочу пройти через несколько операций.

Рассмотрим этот пример. У меня есть активность1, activity2 и activity3. Activity1 переходит в Activity2. Activity2 переходит в Activity3. Я хочу получить информацию от activity1 до activity3

Мой код будет

Intent intent = new Intent(v.getContext(), Activity2.class);
intent.putExtra(KEY, "Straight There");
startActivity(intent);

и тогда я должен был бы сделать это в Activity2

Bundle extras = getIntent().getExtras();
if (extras != null) 
 text = extras.getString(KEY);
Intent intent = new Intent(v.getContext(), Activity3.class);
intent.putExtra(KEY, text);
startActivity(intent);

Есть ли в любом случае, что я могу передать весь пакет через активность, не разбираясь в ключах и не отказываясь?

заранее спасибо

3 ответа

вы можете использовать putExtras (Intent src), чтобы вытащить все дополнения из одного Intent и поместить их в другой.

Intent intent = new Intent(v.getContext(), Activity3.class);
intent.putExtras(getIntent()); // get all the extras out of the current Activities Intent
startActivity(intent);


Я думаю, вы можете использовать SharedPreferences, чтобы избежать передачи активности данных по активности, например: в своем первом действии сохраните данные с помощью SharedPreferences:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(KEY, "Straight There");

в вашем третьем действии, получите данные по SharedPreferences:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String result = settings.getString(KEY, null);

Дополнительная информация о SharedPreferences, см.: Параметры хранилища


intent.putExtras(getIntent());

licensed under cc by-sa 3.0 with attribution.