`
huakewoniu
  • 浏览: 47668 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

在不同的Activity中传递对象的方法

阅读更多

下面我们将要实现的功能是是将一个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 中。

分享到:
评论

相关推荐

    在不同Activity之间传递数据的四种常用方法

    在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在...

    Activity传递对象的3种方法(全)

    本文将详细介绍如何使用三种方法来传递对象:Parcelable、Serializable和Bundle,这些方法适用于不同类型的对象,包括基本类型、字符串、布尔值、数组、ArrayList以及自定义复杂对象如UUID和浮点类型。 ### 1. ...

    Activity传递类对象源码

    Activity间要传递数据,很多时候简单的int和string满足不了需求,我们在面向对象中已经习惯了类和对象, 那么下面就说一下如何传递类对象。 Android中有两种办法来完成这件事。一个是Java的序列化(Serializable)...

    android activity之间传递对象

    本篇将详细讲解如何在Android的Activity之间传递对象,主要涉及两种常见的实现方式:Parcelable和Serializable。 一、Parcelable接口 Parcelable是Android系统提供的一种高效的数据序列化方式,它允许对象直接在...

    Activity之间传递对象的Demo

    三、使用Parcelable传递对象 在发送Activity中,我们可以这样创建Intent并添加对象: ```java User user = new User("Tom", 25); Intent intent = new Intent(this, SecondActivity.class); intent.putExtra("user...

    Activity之间对象传递的两种方式

    首先,我们来理解为什么需要在Activity之间传递对象。在多Activity的应用中,可能需要在不同的Activity之间共享数据,这些数据可能是简单的基本类型,如字符串、整数,也可能是复杂的自定义对象。Android的Intent...

    利用广播Broadcast Receiver,在2个不同的Activity传递数据

    在第二个Activity的BroadcastReceiver的onReceive()方法中,我们已经获取到了传递过来的数据。现在可以对数据进行处理,例如更新UI或者其他业务逻辑。 5. **解除注册BroadcastReceiver**: 如果是动态注册的...

    Activity跳转时传递Bitmap对象

    在Android开发中,Activity之间的数据传递是常见的操作,特别是在处理图像数据时,如Bitmap对象。Bitmap是Android系统中用于表示图像的重要类,它包含了图像的所有像素信息。在不同Activity之间传递Bitmap,通常是...

    Activity间图片传递(3种方法)

    在Android开发中,Activity间的通信是至关重要的,其中包括数据的传递。当涉及到图片这种大对象时,我们需要采取一些特殊的方法来高效地进行传递。本文将详细介绍三种在Activity间传递图片的方法。 1. 资源ID间传递...

    两个Activity在调用StartActivity的时候传递序列化信息

    当需要在两个Activity之间传递数据时,通常有多种方法,其中一种是通过Intent传递序列化对象。这里的"两个Activity在调用StartActivity的时候传递序列化信息"就是指在启动一个新Activity时,将数据以序列化对象的...

    activity与activity利用接口相互传递数据

    然后,在源Activity中实现该接口,并在需要触发数据传递时调用相应的方法。例如,当用户点击一个按钮时: ```java public class ActivityA extends AppCompatActivity implements DataCallback { // ... @...

    activity值传递

    "activity值传递"是指在不同的Activity之间传输数据的过程。在这个过程中,我们通常会使用Intent对象来实现这一功能。Intent不仅用于启动一个新的Activity,还可以携带数据在它们之间进行通信。 首先,让我们了解...

    activity中图片传递

    在Android开发过程中,经常会遇到需要在不同的`Activity`之间传递数据的需求,例如用户从一个页面选择一张图片后,在另一个页面显示这张图片等场景。本篇文章将详细探讨如何在两个`Activity`(即`MainActivity`与`...

    android 传递对象

    4. 在接收Activity中,通过getParcelableExtra()方法获取对象。 5. 可能还会包含一些异常处理和测试代码,确保数据正确传递。 了解这些知识点后,开发者可以根据具体需求选择合适的方式传递对象。Parcelable适合高...

    Android aidl实现传递对象

    本文将深入探讨如何利用AIDL在Android应用间传递对象。 首先,我们需要理解AIDL的基本概念。AIDL文件是一种定义接口的文本文件,它以.aidl为扩展名,包含了方法签名和数据类型声明。这些定义会被Android编译器转换...

    android中传递对象

    本文将详细讲解如何在Android中通过Intent传递对象,主要分为序列化方式和Parcelable接口方式。 首先,理解Intent的基本概念。Intent主要用于启动一个Activity或Service,或者在它们之间传递消息。Intent携带的数据...

    Activity review activity之间的数据传递

    通过Intent,我们可以将基本数据类型(如字符串、整数等)、Parcelable对象、Serializable对象以及额外的数据捆绑到Intent中,然后在启动新Activity时传递这些数据。 1. 使用putExtra()和getExtra()方法:这是最...

    Fragment与Activity传递数据

    3. **在Activity中获取数据**:在Activity中,通过getArguments()方法获取Fragment传递过来的Bundle,然后从中取出数据。 示例代码: ```java // 在Activity中创建Fragment并传递数据 MyFragment fragment = new ...

    借助Intent实现Android工程中Activity之间Java对象的传递.zip

    Serializable接口简单易用但效率较低,Parcelable接口高效但编码复杂,Gson库提供了方便的JSON转换,而ParcelableArrayListExtra则适用于传递对象列表。理解和掌握这些技巧,将有助于提升你的Android开发能力。

    Intent传递对象、对象数组

    总结,Intent在Android开发中扮演着核心角色,通过实现Parcelable接口,我们可以顺利地在Intent中传递对象和对象数组,实现不同组件之间的数据交互。在实际开发中,根据具体需求和性能要求选择合适的数据传递方式。

Global site tag (gtag.js) - Google Analytics