我有一个捆绑包,我想通过多个活动。
考虑这个例子。我有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);
无论如何,我可以通过活动传递整个捆绑包而无需解析密钥并重新绑定吗?
提前致谢
答案 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