父Activity获取子Activity的返回值

在Android开发中,经常会通过某个父Activity启动一个子Activity,用户

在子Activity上的操作信息又需要返回给父Activity。对于这种需求,我们

不是在父Activity直接调用startActivity函数来启动子Activity,而是调用

startActivityForResult函数。例如:

Intent intent = new Intent(); 
msg = editText.getText().toString(); //获取编辑框中字符串
intent.putExtra("org.hq.testIntent.msg", msg); //向下一个Activity发送编辑框中的字符串,初始化时字符串为空
intent.setClass(MainActivity.this, EditActivity.class);
startActivityForResult(intent,100);//启动下一个Activity,设置一个请求值100

然后在重载onActivityResult函数。这个函数的参数中包括一个请求码,就是上面的100,还有一个结果码,

通过这个我们可以判断子Activity中用户操作的结果。

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

至此,父Activity中的工作完成了。在子Activity中,finish之前需要调用setResult函数将子Activity中用户的

操作信息返回。例如:

Intent intent = new Intent();
msg = et.getText().toString(); //获取编辑框中的字符串
intent.putExtra("org.hq.testIntent.msg", msg); //向父Activity发送数据
setResult(20,intent);      
finish();    //本次Activity结束,表面上是两个Activity交互,实际上子Activity返回后它的生命周期已经结束了,再次调用是新生成的Activity

demo预览:


父Activity,通过调用子Activity获取字串保存在编辑框中。


子Activity,可以将编辑框中字串放到Intent中返回给调用者。


demo下载地址:http://download.csdn.net/detail/he_qiao_2010/7129957


猜你喜欢

转载自blog.csdn.net/he_qiao_2010/article/details/22730615
今日推荐