创建两个活动。 - Activity One将具有TextView和Button。 - Activity Two将有一个TextField(EditText)和一个Button

时间:2011-10-24 14:34:37

标签: android

你好,我有一些问题。任何人都可以帮助我

  • 创建两个活动。
    • 活动一将有一个TextView和一个按钮。
    • 活动二将有一个TextField(EditText)和一个Button。

5 个答案:

答案 0 :(得分:1)

您想要使用传递给onActivityResult的意图。

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == 1)
    {
        String str = data.getExtras().getString("name");
        TextView t = (TextView) findViewById(R.id.textView1);
        t.setText(str);
    }
    else
    {
    }
}

答案 1 :(得分:1)

String str = data.getExtras().getString("name");
TextView t = (TextView) findViewById(R.id.textView1);
t.setText(str);

试试这个,不要再次调用getIntent()。

答案 2 :(得分:1)

潜在问题:

  1. 您的SecondActivity中不存在editText1。也许它被称为其他东西?
  2. getIntent()不应该在One中使用,因为它返回用于启动活动的意图而不是结果数据。正如goto10所暗示的那样,数据是在onActivityResult中使用的正确意图。

答案 3 :(得分:0)

  1. 来自Activity one,通过startActivityForResult(intent,requestcode)调用第二个活动
  2. 在活动2中,调用setResult(int resultCode,Intent data)并将textview值放入数据然后结束()。
  3. 在活动1中,覆盖方法onActivityResult并检查whehter请求和结果代码是否与setResult(int resultCode,Intent data)不活动2中的resultCode匹配。
  4. 从数据中获取值并将其设置为activity1中的textview。

答案 4 :(得分:0)

在Activity One中,您需要使用startActivityWithResult()调用Activity Two,如:

Intent i = new Intent(this, ActivityTwo.class);
startActivityForResult(i, ACTIVITY_TWO_REQUEST_CODE);

然后在活动二中,您将在完成活动时发回结果:

Intent data = new Intent();
data.putExtra("ACTIVITY_TWO_KEY", "Here is your value");
setResult(Activity.RESULT_OK, data);
finish();

然后回到Activity One,你会想要覆盖onActivityResult,如下所示:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (REQUEST_CODE) {
    case ACTIVITY_TWO_REQUEST_CODE:
        if (resultCode == Activity.RESULT_OK) {
            //Load your text into your TextView from Activity Two
        }
        break;
    }

    super.onActivityResult(requestCode, resultCode, data);
}