我想问,如果我有多个活动需要超越另一项活动,该如何做?从下面的代码中,我已经将来自活动A的数据传递并显示到DisplayActivity,但是现在我想添加另一个活动,即活动A和B,并将它们中的所有数据传递给DisplayActivity。 COde代表活动A。代码2代表DisplayActivity
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent1 = new Intent(MainActivity.this,Main2Activity.class);
intent1.putExtra("first_name",edt1.getText().toString());
intent1.putExtra("last_name",edt2.getText().toString());
intent1.putExtra("date_of_birth",edt3.getText().toString());
//startActivity(intent1);
startActivityForResult(intent1,1);
Intent intent2 = getIntent();
Bundle bundle = intent2.getExtras();
String first = bundle.getString("first_name");
String last = bundle.getString("last_name");
String dob = bundle.getString("date_of_birth");
txt5.setText(": "+first.toString()+" "+last.toString());
txt7.setText(": "+dob.toString());
答案 0 :(得分:1)
您可以将所有数据保存为共享首选项,并在所需的位置检索数据。
根据需要创建AppPreference类,并创建一些getter和setter,将数据保存为共享的首选项,然后到达所需位置。
AppPreference类:-
public class AppPreference {
private static SharedPreferences mPrefs;
private static SharedPreferences.Editor mPrefsEditor;
public static String getFirstName(Context ctx) {
mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
return mPrefs.getInt("first_name", "");
}
public static void setFirstName(Context ctx, Integer value) {
mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
mPrefsEditor = mPrefs.edit();
mPrefsEditor.putInt("first_name", value);
mPrefsEditor.commit();
}
}
设置值:-
AppPreference.getFirstName(activity, edt1.getText().toString());
并获取值:-
String firstName = getFirstName(this);