- 浏览: 47668 次
- 性别:
- 来自: 西安
最新评论
下面我们将要实现的功能是是将一个MyObject 对象从CurrrentActivity 中传递到 AimActivity中
要在不同的Activity传递对象,首先这个对象必须实现Serializable 以说明它是可序列化的。
如
public class MyObject implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3040176837769962141L;
public String url;
public String localFileName;
}
android中Activity之间传递数据使用的是Intent,现在我们就把一个BriefAttachment 对象实例用Itent 从一个Activity中传到另一个。
1 首先我们要把这个对象写入ByteArrayOutputStream 中 在以ByteArray的形式表示这个对象,然后把这个ByteArray 装到Intent中
MyObject myObject = new MyObject ();
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
try {
ObjectOutputStream objStream = new ObjectOutputStream(byteStream);
objStream.writeObject(myObject );
} catch (IOException e) {
log.warn("fail to serialize BriefAttachment!");
return; // should not happen, so donot do error handling
}
Intent intent = new Intent(CurrentActivity.this, AimActivity.class);
intent.putExtra(AimActivity.IMAGES, byteStream.toByteArray());
startActivityForResult(intent, 2);
下面是AimActivity 从Intent中取出这个对象的方法
Intent intent = getIntent();
byte[] bytes = intent.getByteArrayExtra(IMAGES);
if (bytes != null) {
ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes);
List<BriefAttachment> images = null;
try {
ObjectInputStream objStream = new ObjectInputStream(byteStream);
myObject = objStream.readObject();
这样就完成了对象在不同的Activity中传递的任务
Note:这里我们是将对象写入ByteArrayOutputStream 输出流当中,但是我们需要一个ObjectOutputStream
作为连接myObjecy 和 ByteArrayOutputStream 之间的管道,在将对象读到ObjectOutputStream 中。
发表评论
-
Android Intent and Intent Filter (转)
2011-03-10 22:47 1460Android Intent and Intent ... -
Intent详解
2011-03-03 14:18 1142在应用中,我们可以以两种形式来使用Intent: 直接I ... -
Intent间传送数据一般有两种常用方法
2011-01-24 14:50 1307Intent间传送数据一般有两种常用的办法: 1.extra ... -
android RelativeLayout 详解
2011-01-01 09:46 1580<?xml version="1.0" ... -
How to Use Android Downloads Provider
2010-12-20 21:41 1332本文转载自 http://blog.lytsing.or ... -
android 开发中的一些小知识点
2010-12-17 09:49 10001 关于onPause(): onPause ... -
content provider 深入解析
2010-12-15 22:04 1099Content providers are on ... -
Service的高级应用
2010-12-12 20:48 1356下面是android Service的高级应用的一个例子,主要 ... -
TabActivity
2010-12-12 19:09 1772下面是一个使用android tabactivity 的例子 ... -
android 测试初探(android test)
2010-12-07 15:00 8015android Testing and Instrumenta ... -
Localization of android
2010-12-05 21:51 0android 会在不同地域的不同机器上运行。为了是应用能够 ... -
android高效编程之使用本地变量
2010-12-05 14:26 976hava a look at the following co ... -
Cursor与Adapter
2010-11-21 08:34 1228来自: http://hi.baidu.com/lfcaoli ... -
Working with Context Menus
2010-11-15 23:36 861... -
Handler的理解
2010-11-14 20:58 837A Handler allows you to sen ... -
android开发问题解决日志
2010-11-14 18:33 18801.、android中R文件消失的处理方式 ... -
android 中对SDCard 的操作
2010-11-11 14:14 1637对于像视频这样的大文件,我们可以把它存放在SDCard。 SD ... -
ViewAnimation
2010-11-05 12:46 1040view animation 的实现 Understandi ... -
android高效的编写高效代码
2010-10-17 19:13 788本文来源于: 从此学习网 原文: http://www.con ... -
scale animation
2010-10-11 23:29 1612Scale animation: You use this t ...
相关推荐
在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在...
本文将详细介绍如何使用三种方法来传递对象:Parcelable、Serializable和Bundle,这些方法适用于不同类型的对象,包括基本类型、字符串、布尔值、数组、ArrayList以及自定义复杂对象如UUID和浮点类型。 ### 1. ...
Activity间要传递数据,很多时候简单的int和string满足不了需求,我们在面向对象中已经习惯了类和对象, 那么下面就说一下如何传递类对象。 Android中有两种办法来完成这件事。一个是Java的序列化(Serializable)...
本篇将详细讲解如何在Android的Activity之间传递对象,主要涉及两种常见的实现方式:Parcelable和Serializable。 一、Parcelable接口 Parcelable是Android系统提供的一种高效的数据序列化方式,它允许对象直接在...
三、使用Parcelable传递对象 在发送Activity中,我们可以这样创建Intent并添加对象: ```java User user = new User("Tom", 25); Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("user...
首先,我们来理解为什么需要在Activity之间传递对象。在多Activity的应用中,可能需要在不同的Activity之间共享数据,这些数据可能是简单的基本类型,如字符串、整数,也可能是复杂的自定义对象。Android的Intent...
在第二个Activity的BroadcastReceiver的onReceive()方法中,我们已经获取到了传递过来的数据。现在可以对数据进行处理,例如更新UI或者其他业务逻辑。 5. **解除注册BroadcastReceiver**: 如果是动态注册的...
在Android开发中,Activity之间的数据传递是常见的操作,特别是在处理图像数据时,如Bitmap对象。Bitmap是Android系统中用于表示图像的重要类,它包含了图像的所有像素信息。在不同Activity之间传递Bitmap,通常是...
在Android开发中,Activity间的通信是至关重要的,其中包括数据的传递。当涉及到图片这种大对象时,我们需要采取一些特殊的方法来高效地进行传递。本文将详细介绍三种在Activity间传递图片的方法。 1. 资源ID间传递...
当需要在两个Activity之间传递数据时,通常有多种方法,其中一种是通过Intent传递序列化对象。这里的"两个Activity在调用StartActivity的时候传递序列化信息"就是指在启动一个新Activity时,将数据以序列化对象的...
然后,在源Activity中实现该接口,并在需要触发数据传递时调用相应的方法。例如,当用户点击一个按钮时: ```java public class ActivityA extends AppCompatActivity implements DataCallback { // ... @...
"activity值传递"是指在不同的Activity之间传输数据的过程。在这个过程中,我们通常会使用Intent对象来实现这一功能。Intent不仅用于启动一个新的Activity,还可以携带数据在它们之间进行通信。 首先,让我们了解...
在Android开发过程中,经常会遇到需要在不同的`Activity`之间传递数据的需求,例如用户从一个页面选择一张图片后,在另一个页面显示这张图片等场景。本篇文章将详细探讨如何在两个`Activity`(即`MainActivity`与`...
4. 在接收Activity中,通过getParcelableExtra()方法获取对象。 5. 可能还会包含一些异常处理和测试代码,确保数据正确传递。 了解这些知识点后,开发者可以根据具体需求选择合适的方式传递对象。Parcelable适合高...
本文将深入探讨如何利用AIDL在Android应用间传递对象。 首先,我们需要理解AIDL的基本概念。AIDL文件是一种定义接口的文本文件,它以.aidl为扩展名,包含了方法签名和数据类型声明。这些定义会被Android编译器转换...
本文将详细讲解如何在Android中通过Intent传递对象,主要分为序列化方式和Parcelable接口方式。 首先,理解Intent的基本概念。Intent主要用于启动一个Activity或Service,或者在它们之间传递消息。Intent携带的数据...
通过Intent,我们可以将基本数据类型(如字符串、整数等)、Parcelable对象、Serializable对象以及额外的数据捆绑到Intent中,然后在启动新Activity时传递这些数据。 1. 使用putExtra()和getExtra()方法:这是最...
3. **在Activity中获取数据**:在Activity中,通过getArguments()方法获取Fragment传递过来的Bundle,然后从中取出数据。 示例代码: ```java // 在Activity中创建Fragment并传递数据 MyFragment fragment = new ...
Serializable接口简单易用但效率较低,Parcelable接口高效但编码复杂,Gson库提供了方便的JSON转换,而ParcelableArrayListExtra则适用于传递对象列表。理解和掌握这些技巧,将有助于提升你的Android开发能力。
总结,Intent在Android开发中扮演着核心角色,通过实现Parcelable接口,我们可以顺利地在Intent中传递对象和对象数组,实现不同组件之间的数据交互。在实际开发中,根据具体需求和性能要求选择合适的数据传递方式。