2019独角兽企业重金招聘Python工程师标准>>>

假设有俩个布局界面,第一个是要获取信息Info的定义为MainActivity,第二个是提供需要的信息的定义为SecondActivity,信息格式定义为Info

(1)用startActivity(Intent intent)函数启动

用这种方式启动,需把SecondActivity设置为程序的入口布局界面,输入信息后用下面代码把信息传递到MainActivity,然后SecondActivity关闭;

Info info =new Info(name.getText().toString(),age.getText().toString());String key1 = new String("info");String key2 = new String("people");Bundle data = new Bundle();data.putSerializable(key2, info);data.putSerializable(key1, info);Intent intent = new Intent(SecondActivity.this,MainActivity.class);intent.putExtras(data);startActivity(intent);finish();

MainActivity启动后,用下面的代码获取信息并显示

Intent intent = getIntent();Bundle data = intent.getExtras();Info info =(Info)data.getSerializable("people");name.setText(info.getName());age.setText(info.getAge());

需要指明是,Info必须实现Serializable接口才可以序列化,Info不需要实现任何Serializable接口方法,只需要声明实现接口,就可以进行序列化;data.putSerializable可以把多个序列化的元素插入到data中,他们用key区分。

(2)用startActivityForResult(int requestCode,int resultCode,Intent intent)函数启动

用这种方式启动,需把MainActivity设置为程序的入口布局界面,需要时(如按钮)用下面代码启动SecondActivity,SecondActivity在关闭时返回数据:

commit.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){Intent intent = new Intent(MainActivity.this,SecondActivity.class);startActivityForResult(intent,0);               }});

SecondActivity启动后,用下面的代码获取信息返回给MainActivity

Info info =new Info(name.getText().toString(),age.getText().toString());String key = new String("info");Bundle data = new Bundle();data.putSerializable(key, info);Intent intent = getIntent();//Intent intentx = new Intent();也可以intent.putExtras(data);SecondActivity.this.setResult(0, intent);SecondActivity.this.finish();

这里留一个疑问,两个布局之间的requestCode是怎么传递和识别的?

转载于:https://my.oschina.net/u/779520/blog/79244

Activity两个启动方法的区别相关推荐

  1. Service 的生命周期;两种启动方法和区别

    1:startService  Service的生命周期:onCreate() --> onStart() -> onDestroy() 停止服务:service.stopService( ...

  2. Service的两种启动方式与区别

    Service的启动方式:startService() 和 bindService() startService() public abstract void startService(Intent ...

  3. iOS学习——UITableViewCell两种重用方法的区别

    今天在开发过程中用到了UITableView,在对cell进行设置的时候,我发现对UITableViewCell的重用设置的方法有如下两种,刚开始我也不太清楚这两种之间有什么区别.直到我在使用方法二进 ...

  4. service两种启动方式的区别

    service,中文名称是服务,服务是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互,而且还要长期运行的任务. 服务运行不依赖于任何用户界面,即使程序切换到后台,或者 ...

  5. 【Django】项目中调用深度学习模型model.predict()(Django两种启动方式runserver和uwsgi的区别)

    目录 问题 测试 解决方法 Django两种启动方式runserver和uwsgi的区别 问题 部署含有深度学习模型的Django项目的uWSGI.Nginx服务器的时候,所有模块都可以正常运行,也可 ...

  6. Activity的启动方法

    在 Android 中,界面的跳转通常是通过启动不同的 Activity 来实现的,下面介绍一下 Activity 的启动方法. 显式调用 显式调用,字面意思即"明显的调用",我们 ...

  7. GET和POST两种基本请求方法的区别

    GET和POST两种基本请求方法的区别 回退 回退时无害 会再次提交请求 记录 URL可被记录, 用于再访问 不可以 缓存 主动缓存 可手动设置 编码方式 只进行url编码 多种编码方式 参数长度 有 ...

  8. Cesium 中两种添加 model 方法的区别

    概述 Cesium 中包含两种添加 model 的方法,分别为: 通过 viewer.entities.add() 函数添加 通过 viewer.scene.primitives.add() 函数添加 ...

  9. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

最新文章

  1. 【青少年编程】陈晓光:打靶游戏
  2. Eclipse如何生成jar包
  3. mysql数据库表迁移
  4. ssacanf\Sprintf格式化字符串
  5. Error: package or namespace load failed for ‘rJava’:
  6. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析
  7. openshift_在OpenShift上托管的WildFly实例上进行Arquillian测试
  8. Windows7,网络连接错误: 依赖服务或组无法启动
  9. POI 读取 Excel 文件(2003版本与2007版本的差异之处)
  10. 在C#中使用SQL语句什么情况需要使用‘单引号’和“双引号”
  11. mysql处理字符串函数,MySQL常用函数--字符串处理
  12. grok调试工具使用
  13. es where_阿水出现在eStar二队,ES.JackeyLove正在连接?
  14. Linux+conda+R+Rstudio下载安装环境全方面配置
  15. iOS 开发项目之 QQ 音乐
  16. SpringSecurity(一)核心功能
  17. linux网络编程实现投票功能
  18. 服务器千兆网卡显示百兆,windows10系统查看网卡是千兆还是百兆的方法
  19. 工具分享 | linemap-快速绘制山峦地图的R可视化包介绍
  20. 动态规划-电路布线问题

热门文章

  1. SVM: 实际中使用SVM的一些问题
  2. kafka管理器kafka-manager部署安装
  3. POJ 1091 跳蚤
  4. runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗?...
  5. 恢复Reflector反编译后资源文件的办法
  6. 人工智能:一种现代方法汇总
  7. Ajax原理以及优缺点
  8. Error loading WebappClassLoader
  9. 80后的网上创业生涯:想得到做得到
  10. 毕业一两年,怎样快速成长和晋升?