Android 在以后的阶段中显示在意图中传递的表单数据

Android 在以后的阶段中显示在意图中传递的表单数据,android,android-intent,Android,Android Intent,我创建了一个表单,并在一个名为DisplayPage.java的意图上传递数据。 这是我的代码片段 Intent d = new Intent(MainActivity.this, DisplayPage.class); EditText firstName = (EditText)findViewById(R.id.EditTextFirstName); EditText lastName = (EditText)findViewById(R.id.EditTextLastName); St

我创建了一个表单,并在一个名为
DisplayPage.java
的意图上传递数据。 这是我的代码片段

Intent d = new Intent(MainActivity.this, DisplayPage.class);
EditText firstName = (EditText)findViewById(R.id.EditTextFirstName);
EditText lastName = (EditText)findViewById(R.id.EditTextLastName);

String fname = firstName.getText().toString();
String lname = lastName.getText().toString();

d.putExtra("fname" , fname );
d.putExtra("lname", lname);
然而,在此之后,我调用另一个名为
MainActivity2
的意图

Intent i=new Intent(MainActivity.this, MainActivity2.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
main活动2
依次调用
display页面上的
intent,如下所示-

Intent i=new Intent(MainActivity2.this, DisplayPage.class);
startActivity(i);
Bundle extras = getIntent().getExtras();
if (extras == null) {
    return;
}
String fname = extras.getString("fname");
String lname = extras.getString("lname");

final TextView first_name = (TextView) findViewById(R.id.text_first);
first_name.setText(String.valueOf(fname));

final TextView first_name = (TextView) findViewById(R.id.text_last);
first_name.setText(String.valueOf(lname));
然后,
显示页面
接收如下数据-

Intent i=new Intent(MainActivity2.this, DisplayPage.class);
startActivity(i);
Bundle extras = getIntent().getExtras();
if (extras == null) {
    return;
}
String fname = extras.getString("fname");
String lname = extras.getString("lname");

final TextView first_name = (TextView) findViewById(R.id.text_first);
first_name.setText(String.valueOf(fname));

final TextView first_name = (TextView) findViewById(R.id.text_last);
first_name.setText(String.valueOf(lname));
现在,如果我在从
MainActivity
传递数据后直接调用
DisplayPage
,它将显示在前面提到的
TextView
s中传递的数据。我想做的是-

1) 将
MainActivity
中给出的表单数据传递到
DisplayPage

2) 在
MainActivity


3) 从
MainActivity2
启动intent
DisplayPage
,以便显示从
MainActivity
传入的数据。

首先,如果不启动
活动
,则无法向该
活动
传递数据

所以,你可以做什么来实现你的目标是

  • 将这些数据从
    MainActivity
  • 然后从
    MainActivity2
  • 例如,在
    main活动中

    Intent i = new Intent(MainActivity.this, MainActivity2.class);
    i.putExtra("fname" , fname );
    i.putExtra("lname", lname);
    startActivity(i);
    
    然后在
    MainActivity2

    Intent i = new Intent(MainActivity2.this, DisplayPage.class);
    d.putExtra("fname" , getIntent().getStringExtra("fname"));
    d.putExtra("lname", getIntent().getStringExtra("lname"));
    startActivity(d);
    

    我们可以简单地将
    MainActivity
    中的数据值存储到一个类中,
    public static String
    值存储来自用户的输入,而不必经历上面定义的繁琐过程。在
    DisplayPage
    上,我们可以很容易地从类中调用值。

    只需将数据从MA传递到MA2,然后从MA2传递到DisplayPage?我明白了。那么,我想做什么,有什么解决办法吗?MainActivity上有一些表单字段,如名字、姓氏、年龄等。然后MainActivity2还有一些字段,如地址、城市等。最后,第三个页面即DisplayPage显示用户输入的数据。我该怎么做?是的,这肯定有用。然而,从一个活动传递到另一个活动不需要很多代码吗?一个额外的活动是可以的,但是如果活动的数量增加,那就太单调了。这个怎么样?我们可以创建一个类,将MainActivity中的数据值传递到公共静态字符串值中,然后在最终的显示页面上访问它。是的……您可以这样做,我认为这将是更好的选择,而不是通过多个活动传递数据来获取目标类中的数据。