Bundle对象的使用
在Android开发中,如果要通过一个Activity启动另外一个Activity,需要调用startActivity()函数,这个函数的参数是一个Intent对象,这个对象通常的初始化方式如下:
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
startActivity(intent);
这样就完成了一个新的Activity的启动,但是这种启动方式两个Activity之间不会有任何的数据传递,很多情况下,我们遇到的往往是前一个Activity要把数据传递给新启动的Activity,这就要用到Bundle对象了。
比如在第一个Activity中,我们获取了身高和性别两种数据,需要传递给新启动的Activity,那么就要把这些数据封装进Bundle对象里面,再把Bundle对象assign给Intent,作为starActivity()函数的参数。
实现代码如下:
Intent intent = new Intent();
intent.setClass(this,SecondActivity.class);
//封装Bundle对象
Bundle bundle = new Bundle();
bundle.putDouble("height",height);//height为double型变量
bundle.putString("sex",sex);//sex为string型变量
//把Bundle对象assign给Intent
intent.putExtras(bundle);
startActivity(intent);
第二个Activity相应的也要接收数据,方法也很简单,先从Intent对象中分离Bundle,再按照相同方法提取数据。
实现代码如下:
Bundle bundle1=this.getIntent().getExtras();
String sex=bundle1.getString("sex");
double height=bundle1.getDouble("height");
值得注意的是,如果程序中有多个Activity,要在AndroidManifest.xml中声明,声明一个Activity格式如下:
<activity android:name="SecondActivity"></activity>
当存在多个Activity时,必须指定一个最先启动的Activity,也是在AndroidManifest.xml中声明,声明方式如下:
<activity android:name="SecondActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Bundle对象还有其他很多种对不同数据类型的操作方法,比如getBoolean等,具体可以到Android官网去参考。
Bundle对象的使用的更多相关文章
- JAVA新手笔记 Intent对象和Bundle对象
Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...
- 不同的activity使用bundle对象传值给广播接收器
解决了一下午的问题,广播机制传值,在一个activity中发送广播给广播接收器,使用的是同一个action 在另一个activity中如果也发送广播给同一个广播接收器,使用相同的action,会导致后 ...
- 关于Bundle对象的思考
在开发过程中,我们经常使用bundle对象来携带二进制数据,通过INTENT传递出去,那么BUNDLE对象到底是什么?其结构如何? 简要来说,bundle对象类似于一个map,内部是通过<key ...
- android bundle 对象 序列化
Android使用Intent.putSerializable()进行数据传递,或者使用Bundle进行数据传递,实质上都是进行的Serializable数据的操作,说白了都是传递的原数据的一份拷贝, ...
- 【转】Android中如何使用Bundle传递对象[使用Serializable或者Parcelable] -- 不错
原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1211/694.html Android中Bundle类的作用 Bun ...
- Android笔记——Bundle类的作用
Bundle类用作携带数据,它类似于Map,用于存放key-value键值对形式的值.相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getSt ...
- .NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)
阅读目录: 1.开篇介绍 2.System.Web.Optimization 组件 3.System.Web.Optimization 组件基本原理 4.扩展自定义类型静态文件 1]开篇介绍 这篇文章 ...
- Android Bundle
#Bundle类介绍 Bundle主要用于传递数据:它保存的数据,是以key-value(键值对)的形式存在的. 我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean ...
- Android Application 对象介绍
What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application ...
随机推荐
- angularjs取Sevice和directive的引用
取Sevice和directive的引用 3: Grab any Services We can grab a reference to any service using the injector ...
- mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决
前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: ...
- mysql5日期类型datetime查询范围值
1.DATE_FORMAT函数 SELECT a.create_time FROM account_log a WHERE a.create_time >= DATE_FORMAT('2014- ...
- Win7无法使用VPN的原因与解决方法(一)
如果Windows 7不是通过正常安装途径的话,像Ghost错误.系统环境改变等,都有可能导致无法使用VPN,而且由于原因不同,给出的提示也不尽相同.实际上,万变不离其宗, VPN是要依靠Window ...
- PHP READ PPT FILE
function parsePPT($filename) { // This approach uses detection of the string "chr(0f).Hex_value ...
- 就地交叉数组元素[a1a2b1b2]->[a1b1a2b2]
问题描述: If [a1,a2,a3...,an,b1,b2...bn] is given input change this to [a1,b1,a2,b2.....an,bn] , solutio ...
- POJ 3685
Matrix Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 4428 Accepted: 1102 Descriptio ...
- Install wxWidgets-3.0.2 on GNU/Linux Debian
转载自 http://www.binarytides.com/install-wxwidgets-ubuntu/ wxWidgets wxWidgets is an application devel ...
- 以Server模式启动Derby服务竟然抛套接字权限异常
以Server模式启动Derby服务竟然抛套接字权限异常:access denied ("java.net.SocketPermission" "localhost:15 ...
- NoSQL数据库有哪些
NoSQL太火,冒出太多产品了,保守估计也成百上千了. 互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧. 1. In-Memory KV Store : Redis ...