将捆绑从第一个活动传递到第三个

时间:2013-12-11 16:57:42

标签: android android-activity

我正在尝试传递我的变量,如我在按钮点击时的第一个活动中所示:

如果我在第二个Activity上检索它们,它可以正常工作。但我需要直接将它们传递给第三个活动而不是第二个活动。

  Intent intent = new Intent(this, Step3Activity.class);
  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  String getploc=txtFromTime.getText().toString();
  String getfrmdate=txtFromTime.getText().toString();
  //Create the bundle
  Bundle bundle = new Bundle();
  //Add your data to bundle
  bundle.putString("pickuploc", getploc);  
  bundle.putString("fromdate", getfrmdate);
  //Add the bundle to the intent
  intent.putExtras(bundle);
  //Fire that second activity
  startActivity(intent);

在第三个活动中,我将它们作为:

 //Get the bundle
 Intent i = getIntent();
 Bundle bundle = i.getExtras();
 /*Bundle bundle = getIntent().getExtras();*/

 //Extract the data…
 String pickuploc = bundle.getString("pickuploc"); 
 String fromdate = bundle.getString("fromdate");

任何人都可以指导我将它们传递给第三项活动的正确方法。

2 个答案:

答案 0 :(得分:1)

在第二个活动中获取Extras Bundle并使用putExtras在调用第三个Activity的intent中设置它。

或者,如果您想要更多控制手动复制它们。

答案 1 :(得分:0)

如图所示,使用shared Preferences解决了这个问题。

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
data.edit().putString("PickLocation", getploc).commit();
data.edit().putString("FromDate", getfrmdate).commit();

并在第3个活动中将其称为:

SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String pickuploc = data.getString("PickLocation",""); 
String fromdate = data.getString("FromDate","");