我正在尝试传递我的变量,如我在按钮点击时的第一个活动中所示:
如果我在第二个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");
任何人都可以指导我将它们传递给第三项活动的正确方法。
答案 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","");