从android中的活动返回arraylist

从android中的活动返回arraylist,android,Android,我有两个活动,例如活动1和活动2。活动1将调用活动2并发送一个arraylist,然后对其进行修改。这是我已经使用意图完成的。我现在要做的是,当活动2调用finish()时,我希望修改后的arraylist被发送回活动1,以便它具有该arraylist的最新版本 活动1: Bundle b = new Bundle(); b.putParcelableArrayList("com.Woody.RingerSchedule", schedules); Intent i = new Intent(t

我有两个活动,例如活动1和活动2。活动1将调用活动2并发送一个arraylist,然后对其进行修改。这是我已经使用意图完成的。我现在要做的是,当活动2调用finish()时,我希望修改后的arraylist被发送回活动1,以便它具有该arraylist的最新版本

活动1:

Bundle b = new Bundle();
b.putParcelableArrayList("com.Woody.RingerSchedule", schedules);
Intent i = new Intent(this, addSchedule.class);
i.putExtras(b);
startActivity(i);
迄今为止的活动2:

Bundle b = getIntent().getExtras();
final ArrayList<Schedule> schedules = b.getParcelableArrayList("com.Woody.RingerSchedule");
//modify arraylist
//need code here to return arraylist to activity 1
finish();
Bundle b=getIntent().getExtras();
最终ArrayList schedules=b.getParcelableArrayList(“com.Woody.RingerSchedule”);
//修改数组列表
//需要此处的代码才能将arraylist返回到活动1
完成();

非常感谢您的帮助。

您需要使用
Intent
参数调用
setResult

Intent intent = new Intent();
intent.putExtra("returnKey","test");
setResult(RESULT_OK,intent);
finish();
您从以
startActivityForResult

//we need a handler for when the secondary activity finishes it's work
//and returns control to this activity...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    super.onActivityResult(requestCode, resultCode, intent);
    Bundle extras = intent.getExtras();
    mEditText1.setText(extras != null ? extras.getString("returnKey"):"nothing returned");
}

有关更多示例,请参见此:

是,但要设置所需的结果,因为它是一个数组,在启动的活动上,应使用“putParcelableArrayListExtra”函数而不是“putExtra”。对于获得结果的活动,应该使用“getParcelableArrayExtra”。