Activity两个启动方法的区别
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两个启动方法的区别相关推荐
- Service 的生命周期;两种启动方法和区别
1:startService Service的生命周期:onCreate() --> onStart() -> onDestroy() 停止服务:service.stopService( ...
- Service的两种启动方式与区别
Service的启动方式:startService() 和 bindService() startService() public abstract void startService(Intent ...
- iOS学习——UITableViewCell两种重用方法的区别
今天在开发过程中用到了UITableView,在对cell进行设置的时候,我发现对UITableViewCell的重用设置的方法有如下两种,刚开始我也不太清楚这两种之间有什么区别.直到我在使用方法二进 ...
- service两种启动方式的区别
service,中文名称是服务,服务是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互,而且还要长期运行的任务. 服务运行不依赖于任何用户界面,即使程序切换到后台,或者 ...
- 【Django】项目中调用深度学习模型model.predict()(Django两种启动方式runserver和uwsgi的区别)
目录 问题 测试 解决方法 Django两种启动方式runserver和uwsgi的区别 问题 部署含有深度学习模型的Django项目的uWSGI.Nginx服务器的时候,所有模块都可以正常运行,也可 ...
- Activity的启动方法
在 Android 中,界面的跳转通常是通过启动不同的 Activity 来实现的,下面介绍一下 Activity 的启动方法. 显式调用 显式调用,字面意思即"明显的调用",我们 ...
- GET和POST两种基本请求方法的区别
GET和POST两种基本请求方法的区别 回退 回退时无害 会再次提交请求 记录 URL可被记录, 用于再访问 不可以 缓存 主动缓存 可手动设置 编码方式 只进行url编码 多种编码方式 参数长度 有 ...
- Cesium 中两种添加 model 方法的区别
概述 Cesium 中包含两种添加 model 的方法,分别为: 通过 viewer.entities.add() 函数添加 通过 viewer.scene.primitives.add() 函数添加 ...
- Java中的string定义的两种方法和区别
java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...
最新文章
- 【青少年编程】陈晓光:打靶游戏
- Eclipse如何生成jar包
- mysql数据库表迁移
- ssacanf\Sprintf格式化字符串
- Error: package or namespace load failed for ‘rJava’:
- 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析
- openshift_在OpenShift上托管的WildFly实例上进行Arquillian测试
- Windows7,网络连接错误: 依赖服务或组无法启动
- POI 读取 Excel 文件(2003版本与2007版本的差异之处)
- 在C#中使用SQL语句什么情况需要使用‘单引号’和“双引号”
- mysql处理字符串函数,MySQL常用函数--字符串处理
- grok调试工具使用
- es where_阿水出现在eStar二队,ES.JackeyLove正在连接?
- Linux+conda+R+Rstudio下载安装环境全方面配置
- iOS 开发项目之 QQ 音乐
- SpringSecurity(一)核心功能
- linux网络编程实现投票功能
- 服务器千兆网卡显示百兆,windows10系统查看网卡是千兆还是百兆的方法
- 工具分享 | linemap-快速绘制山峦地图的R可视化包介绍
- 动态规划-电路布线问题