activity之间跳转的数据传递返回.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
activity之间跳转的数据传递返回

在上篇谈到了Activity的生命周期,并列举了一个实例。这里,将针对那个实例程序,简单的讲述下Activity间的切换实现和数据传递以及上一个Activity返回结果的获取和处理。 (1)首先是Activity的简单跳转: Activity的切换一般是通过Intent来实现的,Intent是一个Activity到达另一个Activity的引路者,它描述了起点(当前Activity)和终点(目标Activity)。一个简单Intent实现如下: 1.Intent intent = new Intent(); //创建一个Intent对象 2.intent.setClass(activity1.this, activity2.class); //描述起点和目标 3.startActivity(intent); //开始跳转 (2)通常,我们在Activity的切换中,希望把前一个Activity的某些数据传递给下一个Activity。这时,我们可以借助Bundle来实现。Bundle,相当于数据存储包,用于存放我们想要转达的数据。打个比方,Intent就像一封邮件,里面有送信人地址(原始Activity),也有收信人地址(目标Activity),而Bundle就是附件也可看做是信件内容。下面是它的简单实现: a、Activity1发送: 1.Intent intent = new Intent(); 2.intent.setClass(activity1.this, activity2.class); //描述起点和目标 3.Bundle bundle = new Bundle(); //创建Bundle对象 4.bundle.putString(something, Activity1发来的数据); //装入数据 5.intent.putExtras(bundle); //把Bundle塞入Intent里面 6.startActivity(intent); //开始切换 b、Activity2接受从Activity1发来的数据: 1.Intent intent = this.getIntent(); //获取已有的intent对象 2.Bundle bundle = intent.getExtras(); //获取intent里面的bundle对象 3.string = bundle.getString(something); //获取Bundle里面的字符串 (3)解决了如何传递数据问题,那么下一个问题是如何接受从目标Activity返回的处理结果。这里有两种方式,一是在onRestart方法(onRestrart表示重启Activity时激发的事件,具体看上一篇的生命周期)里面接受处理结果,方法实现和Activity2接受从Activity1发来的数据处理一样。另一种方式,是采用应答模式切换。这里,主要下第二种方式。应答模式切换和普通的切换不同在于,普通的是有去没回,应答则是有来有往。代码实现也不一样:1、从Activity1切换到Activity2:startActivityForResult(intent,0);2、从Activity2返回到Activity1:setResult(RESULT_OK, intent)。3、接受返回结果:protected void onActivityResult()。具体代码如下; a、从Activity1切换到Activity2: 1.Intent intent = new Intent(); 2.intent = intent.setClass(ActivityIntent.this, AnotherActivity.class); 3.Bundle bundle = new Bundle(); 4.bundle.putString(string, et_string.getText().toString()); 5.intent.putExtras(bundle);

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档