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

时间:2014-06-10 11:33:29

标签: 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);

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

MainActivity2依次调用DisplayPage意图 -

Intent i=new Intent(MainActivity2.this, DisplayPage.class);
startActivity(i);

然后DisplayPage接收数据如下 -

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

现在,如果我在从DisplayPage传递数据后直接调用MainActivity,则会显示上述TextView中传递的数据。我想做的是 -

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

2)在MainActivity2之后启动名为DisplayPage的意图(而不是MainActivity

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

2 个答案:

答案 0 :(得分:1)

我们可以简单地将MainActivity中的数据值存储到public static String值存储用户输入的类中,而不是通过上面定义的繁琐过程。在DisplayPage上,我们可以轻松调用类中的值。

答案 1 :(得分:0)

首先,如果不启动Activity,您就无法将数据传递给Activity

那么,你可以做些什么来实现你的目标

  1. 将这些数据从MainActivity2
  2. 传递到MainActivity
  3. 然后将这些内容从DisplayPage
  4. 传递给MainActivity2

    例如,在MainActivity

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