6

我正在从activityA 调用activityB 并使用意图传递一个类对象。

Intent intentB = new Intent(v.getContext(), activityB.class);
intentB.putExtra("data", data); //data is a class object
startActivity(intentB);

activityB 开始正常,我也能够提取数据。在activityB中,我正在修改数据对象。我想在调用 activityB.onDestroy() 时将此修改后的数据对象发送回 activityA。

有什么建议吗?

这是我的代码:

活动A,开始Intent

Intent i = new Intent(this, activityB.class);
i.putExtra("object", Class.object);
startActivityForResult(i, 1);

活动A,捕捉意图:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == 1) {    
        object = data.getParcelableExtra("object"); //the Class implements Parcelable
  }
}

活动B

protected void onDestroy() {
  Intent data = new Intent();
  setResult(RESULT_OK, data) 
  finish(); // ends current activity
}
4

1 回答 1

9

使用 ActivityResult。

  1. 采用startActivityForResult(int, Intent)
  2. 要在活动 B 中设置信息,请使用setResult(RESULT_OK, data)(其中数据是 Intent)
  3. 覆盖onActivityResult(int, int, Intent)并捕获data-Intent

活动 A,开始Intent

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

活动A,抓数据:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {    
        // make use of "data" = profit
  }
}

活动 B:

Intent data = new Intent();
setResult(RESULT_OK, data) 
finish(); // ends current activity
于 2013-03-10T19:10:04.773 回答