显示从先前所有活动到一个活动的数据

时间:2019-04-19 06:21:34

标签: java android android-intent

我想问,如果我有多个活动需要超越另一项活动,该如何做?从下面的代码中,我已经将来自活动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());

1 个答案:

答案 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);