有时候我们由一个Activity启动另一个Activity的时候,我们需要从目标Activity中得到处理的信息返回源Activity中,这里就需要用到有返回结果的Activity.
我们源Activity中启动目的Activity要用到startActivityForResult (Intent intent, int requestCode)方法。
其中intent可以包含目标Activity对象或者一些需要处理的信息;requestCode就是对应一个目标Activity的编号,因为一个源Acticity可以启动多个目标Activity.
请看下面代码:
源Acticity:
其中Response是目标Acitity类.
要得到目标Activity:Response处理后的信息,就要重写回调函数onActivityResult()方法,如上,requestCode就是刚才对应的目标Acitivity的编号,这个用来判断是哪个目标Activity返回来的信息。resultCode是返回的状态,在目标Activity中定义,稍后贴上代码。
这个Activity对应的layout:
目标Activity:Response 返回状态就在目标Activity的setResult()方法中设置. 以上代码中有注释关键的finish()作用.
Response对应的layout:
程序运行结果图:
源Activity:白色区域为一个TextView,用来显示从目标Activity中得到的信息
![](http://hi.csdn.net/attachment/201203/17/0_13319601923J4X.gif)
目标Activity:白色区域为EditText,输入的值传递回源Activity中
源Activity:得到返回值,并显示