本系列文章,参考《第一行代码》,作为个人笔记

更多内容:更多精品文章分类

2.3.4 向下一个 Activity 传递数据

前面学习了使用 Intent 来启动一个 Activity ,其实 Intent 还可以用来启动 Activity 的时候传递数据。

Intent 中提供了许多的 putExtra() 方法。可以将数据暂时存在 Intent 中,启动了另一个 Activity 后,只需要把数据从 Intent 中取出来就可以了。

代码:

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExra("extra_data","data");
startActivity(intent);

然后我们就可以在 SeconActivity 中取传递过来的数据了

Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");

2.3.5 返回数据给上一个 Activity

Activity 中还有一个方法 startActivityForResult() 和这个方法也是用来启动 Activity 的。但是这个方法期望在 Activity 销毁的时候能够返回一个结果给上一个 Activity

代码:

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
// 第一个参数就是 Intent ,第二个参数是请求码,请求码自己定义个数字就可以了
startActivity(intent,1);

在 SecondActivity 中代码:

Intent intent = new Intent();
intent.putExra("data","Hello");
setResult(RESULT_OK,intent);
finish();

首先构建一个 Intent 用于向上一个页面传递数据。setResult() 方法是专门用于向上个页面传递数据的。有两个参数,第一个是 返回码(一般用 RESULT_OK 或者 RESULT_CANCELED 就可以了,也可以自己定义),第二个参数就是带有数据的 Intent。

然后在返回的 Activity 中重写下面的方法

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){ }

最新文章

  1. iframe 跨域相互操作
  2. 修改dedecms默认文章来源 "未知"改为关键词
  3. CodeSnippetsLibrary的使用方法
  4. 2013年优秀jQuery插件
  5. poj 3072(最短路)
  6. PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
  7. PHP与最丑的后台管理系统
  8. TCP的流量控制(转载)
  9. ubuntu texlive 中文的配置方法
  10. java 面试,如何提升自己的实力,摘自 java web轻量级开发面试教程
  11. 自学Python4.1-文件操作
  12. TensorFlow MNIST初级学习
  13. [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明
  14. 【转】Ubuntu+apache绑定多个域名
  15. 在Eclipse里静态导入
  16. QoS专题-第4期-QoS实现之限速
  17. Newman语法参数
  18. i.e 和e.g 的区别
  19. 对于微信小程序登录的理解图
  20. 更换163的yum源

热门文章

  1. Windows系统下解决PhPStudy MySQL启动失败
  2. CentOS 7 离线环境安装nginx时报错:./configure: error: C compiler cc is not found
  3. C++之new关键字
  4. DUBBO: xml文件无法解析
  5. Node.js / Python 日志
  6. .NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新
  7. springboot~maven集成开发里的docker构建
  8. Dynamics CRM通过定制应用程序功能区为符合条件的实体表单增加按钮
  9. Android五大布局详解——FrameLayout(帧布局)
  10. Docker动态添加端口,不需要重新建立镜像