通过活动传递捆绑包

时间:2014-08-11 22:26:49

标签: android android-intent

我有一个捆绑包,我想通过多个活动。

考虑这个例子。我有activity1,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 个答案:

答案 0 :(得分:2)

您可以使用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);

答案 1 :(得分:2)

intent.putExtras(getIntent());

答案 2 :(得分:2)

我认为您可以使用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的更多信息,请参阅:Storage Options