一个Activity跳到另一个Activity时,如果希望后一个Activity结束后把内容传回到前一个Activity,就可以使用系统提供的startActivityForResult(Intent intent,int requestCode)方法打开新的Activity,而此时前一个Activity就需要重写onActivityResult(int requestCode, int resultCode,Intent data)方法
第一个Activity,把第一个Activity的内容放在Intent上,start..中请求码为1
Intent intent = new Intent();
intent.putExtra("title","师资力量");
intent.putExtra("content",org_teac_num_txt.getText().toString());
startActivityForResult(intent, 1);
第一个参数为当前Activity的请求码,即调用startActivityForResult()传递过去的值,第二个参数为后一个Activity的返回码,结果码用于标识返回数据来自后一个Activity的setResult() ,根据这两个参数的不同,可以让当前Activity操作不同的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 1:
if(resultCode==1) {//把后一个的Activity内容显示到当前的Activity
org_introduce_txt.setText(data.getStringExtra("content"));
}
break;
case 2:
if(resultCode==2) {
org_teac_num_txt.setText(data.getStringExtra("content"));
}
break;
}
}
第二个Activity
获得前一个Activity的数据
title=getIntent().getStringExtra("title");
content=getIntent().getStringExtra("content");
org_data_title.setText(title);
设置是哪个Intent返回给前一个Activity,标志为返回码
Intent intent=new Intent();
intent.putExtra("content",org_data_content.getText().toString());
//当当前的Activity结束后,把返回码设置为1,传回前一个Activity
setResult(1,intent);
finish();
Intent intent=new Intent();
intent.putExtra("content",org_data_content.getText().toString());
//当当前的Activity结束后,把返回码设置为2,传回前一个Activity
setResult(2,intent);
finish();