通过Intent将数据传递给上一个活动
2015-09-07 21:25
531 查看
之前我们将数据从第一个活动传递给第二个活动,用的是startActivity()函数,通过查阅文档,我们发现还有一个startActivityForResult()函数也是用来启动活动的,但是这个方法期望在下一个活动销毁的时候能够返回结果给上一个活动。
startActivityForResult(Intent intent,int requestCode) //requestCode是请求码,请求码只要是唯一值就行
第一个活动FirstActivity代码如下
由于我们是使用的startActivityForResult函数,所以我要重写onActivityResult()方法
onActivityResult()方法带有三个参数,第一个参数requestCode,就是我们在第一个活动中启动活动的请求码,第二个参数resultCode,就是我们在第二个活动返回数据时返回的出来结果,第三个参数就是带有返回数据的Intent。
下面给出SecondActivity的代码
从上面的代码中我们看见还是构建了一个Intent,但是这个Intent只是单纯的为了传递数据而已,它没有指定任何意图,存放数据后,调用了setResult(int resultCode,Intent intent),第一个参数用于向上一个活动返回处理结果,第二个参数是将带有数据的Intent传递回去。
以上就是整个过程的实现了。
startActivityForResult(Intent intent,int requestCode) //requestCode是请求码,请求码只要是唯一值就行
第一个活动FirstActivity代码如下
Intent intent=new Intent(FirstActivity.this,SecondActivity.this); startActivityForResult(intent,1);
由于我们是使用的startActivityForResult函数,所以我要重写onActivityResult()方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { switch(requestCode){ case 1: if(resultCode==RESULT_OK) { String returnedData=data.getStringExtra("data_return");//returnedData就是第二个活动销毁时返回的数据 } } super.onActivityResult(requestCode,resultCode,intent); }
onActivityResult()方法带有三个参数,第一个参数requestCode,就是我们在第一个活动中启动活动的请求码,第二个参数resultCode,就是我们在第二个活动返回数据时返回的出来结果,第三个参数就是带有返回数据的Intent。
下面给出SecondActivity的代码
Intent intent =new Intent(); intent.putExtra("data_return","hello world"); setResult(RESULT_OK,intent); finish();//调用finish()销毁活动
从上面的代码中我们看见还是构建了一个Intent,但是这个Intent只是单纯的为了传递数据而已,它没有指定任何意图,存放数据后,调用了setResult(int resultCode,Intent intent),第一个参数用于向上一个活动返回处理结果,第二个参数是将带有数据的Intent传递回去。
以上就是整个过程的实现了。
相关文章推荐
- hdu2516
- 【bzoj1309】【HAOI2006】【受欢迎的牛】【强连通分量缩点】
- R语言包_googleVis
- House Robber
- LintCode-最长无重复字符的子串
- DevExpress之ChartControl实现时间轴实例 z
- 云计算技术的产生、概念、原理、应用和前景
- 构造函数、原型对象、实例的关系与区别
- StringBuffer
- 超级有用PHP代码样例
- 1-7 Graph 可视化
- python的urllib2包基本使用方法
- imitate wechat - 4
- Spark on Yarn+Hbase环境搭建指南(一)准备工作
- 对象(2)
- 利用 NSURLSession 实现文件下载
- 首次书写,欢迎光临!
- 一个小技巧
- 安卓 native 和 H5 的交互
- C++ Vector swap操作前后迭代器为何不失效