`
abc20899
  • 浏览: 928822 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Activity之间传递复杂类型

阅读更多
在Activity之间传递复杂类型
作者: Android开发网原创 时间: 2011-08-03
  很多Android开发者对于Activity中如何传递复杂的类型不是很清楚,这里Android123再帮刚入门的开发者整理下。对于传递

  一、实现Parcelable接口

   对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通过Intent实现的,对于二进制数据,传递的参数为putExtra(String name, Parcelable value) ,比如Bitmap类就实现了Parcelable接口,如果需要在Activity中传递图片,可以直接用Bitmap类型,当然如果本身是Drawable你可以先转化为Bitmap,可以参考 Bitmap和Drawable相互转换方法 一文。

  相关的Intent方法还有

putExtra(String name, Parcelable[] value)  // 传递一个Parcelable数组
putExtra(String name, Bundle value)  //传递一个Bundle对象

putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)  //传递一个实现Parcelable接口的对象数组
putStringArrayListExtra(String name, ArrayList<String> value)  //传递一个字符串数组
putIntegerArrayListExtra(String name, ArrayList<Integer> value)  //传递一个整形数组。

  这里Android开发网提示大家,Integer这些装箱类型,Intent还实现了 putExtra(String name, int[] value)  这样的基础类型数组,同时Parcelable效率比标准的Java序列化更高,同时还被用作在AIDL中交换数据,所以掌握Parcelable这样的显示序列化技术,可以大幅提高数据交换性能。

  二、使用全局单例模式

  由于Android中Activity传递主要靠Intent这个类,Intent类内部传递数据的效率仍然需要拷贝,如果数据量很大,还可以考虑使用Singleton Pattern单例模式定义一个全局的静态类,这样传递的效率最高,大家可以看下Java设计模式,了解其中的妙用。

  三、实现Serializable接口

   如果你学习过传统的Java,则可以通过串行化技术,实现Serializable接口,其实这个原理和Parcelable差不多,均将自己的类转换为基本的类型比如说字节数组。在Android中不是很实用,这里不再赘述,在Intent中使用Intent  putExtra(String name, Serializable value)  这个方法即可。 

分享到:
评论

相关推荐

    Activity之间传递数据

    "Activity之间传递数据"这一主题,主要涉及如何使用Intent对象在不同的Activity之间传递各种类型的数据,包括基本数据类型、字符串、数组、集合以及自定义对象等。在Android中,Intent不仅用于启动新的Activity,还...

    两个Activity之间传递参数的代码

    在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本篇文章将详细讲解如何在Android的两个Activity之间传递参数,并通过给出的`LoginActivity.java`和`MainActivity.java...

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

    当我们需要在两个Activity之间传递数据时,通常有多种方法,如Intent、Bundle、静态变量、文件、数据库等。本教程将聚焦于一种更为灵活的方式:通过接口进行数据传递。这种方式在某些复杂场景下特别有用,例如当数据...

    Android-Activity之间数据传递的多种方式

    本文将详细介绍Android中Activity之间数据传递的多种方式及其适用场景。 一、Intent传递数据 Intent是Android系统中用于启动组件(如Activity)的一种消息对象,同时也可以用来在组件间传递数据。Intent的数据传递...

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

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

    Activity review activity之间的数据传递

    "Activity review activity之间的数据传递"这个主题聚焦于如何在不同的Activity之间有效地传递信息。理解并熟练掌握这一技能对于构建功能丰富的Android应用至关重要。 一、Intent:数据传递的主要工具 在Android中...

    两个activity之间的数据传递

    在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据。本教程将详细讲解如何在两个Activity之间实现数据传递,主要涉及三种常见方法:Intent的Extra数据、Bundle对象以及使用...

    Fragment 与 Activity之间传递数据

    本篇将深入探讨Fragment与Activity之间的数据传递,以及如何通过setArguments方法实现这一过程。 首先,了解Fragment的基本概念。Fragment具有自己的生命周期,可以有自己的布局,也可以处理用户事件。它可以在不同...

    Activity之间传递List数据

    当需要在不同的Activity之间传递数据时,通常会用到Intent对象。然而,标准的Intent API并不直接支持传递大型数据集合,如List。本文将详细讨论如何在Android中实现Activity之间传递List数据。 首先,理解Intent的...

    Activity之间的相互调用与传递参数

    此外,Android的Binder机制也可以实现Activity间的通信,但这通常用于更复杂的场景,如服务与Activity之间的通信,或者跨进程通信。 在实际应用中,有时需要处理Activity的生命周期问题。例如,当从一个Activity...

    通过Intent实现Activity之间的切换,并传递数据

    在Android应用开发中,Intent是一种强大的机制,用于在组件之间建立通信桥梁,特别是在Activity之间进行切换和数据传递。本文将详细讲解如何通过Intent实现Activity之间的切换,并探讨如何利用Intent进行数据传递。 ...

    Activity之间的简单数据传递

    通过Intent,我们可以轻松地在Activity之间交换数据,无论是简单的字符串还是复杂的自定义对象。同时,startActivityForResult提供了Activity间的双向通信,增强了交互体验。在实际开发中,应根据具体需求选择合适的...

    Android Activity之间的跳转以及数据的交互传递

    在Activity之间传递数据库数据时,通常先读取数据到内存,然后通过Intent传递,或者在需要的时候再从数据库中查询。 了解了这些基础后,开发者可以根据实际需求选择合适的数据交互方式。在实际项目中,往往需要结合...

    android Activity之间的数据传递

    本教程将深入探讨如何在Android的Activity之间传递数据,以及如何在启动的Activity销毁后,主Activity能接收到返回的结果。 首先,我们要了解Activity间的启动模式。Android提供了四种启动模式:标准模式(Standard...

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

    综上所述,Android中的序列化是两个Activity之间传递复杂数据的一种手段,而Intent则是连接这些Activity的桥梁。正确理解和使用序列化和Intent机制,可以帮助开发者有效地在不同Activity间共享信息,从而构建功能...

    安卓activity之间简单信息传递

    在两个Activity之间传递信息,我们通常会创建一个Intent对象,然后将数据附加到Intent上,最后通过startActivity()方法启动目标Activity。 1. 使用putExtra()方法传递基本数据类型: ```java Intent intent = new ...

    Eclipse编写的Android Activity之间简单地传递参数应用实例

    Intent在Android系统中扮演着消息传递的角色,它能够启动新的Activity或Service,同时也可以用来在它们之间传递数据。在传递参数时,我们通常会创建一个Intent对象,并使用putExtra()方法添加键值对,键是字符串类型...

    Activity之间的数据传递

    本篇文章将详细探讨如何在Android中通过Intent进行Activity之间的数据传递,以及使用Parcelable和Serializable这两种序列化方式来传递复杂的数据对象。 首先,Intent是Android系统中用于启动组件(如Activity、...

    Fragment与Activity传递数据

    1. **创建接口**:首先,定义一个接口,通常放在Fragment类中,包含需要在Fragment和Activity之间传递的方法。 2. **实现接口**:然后,在Activity中实现这个接口。这样,当Fragment需要与Activity通信时,它可以...

    activity之间的数据传递(SeekBaar版)

    本教程将深入探讨如何在两个Activity之间传递数据,特别是通过SeekBaar(滑动条)进行数据传输。首先,我们要理解Activity的启动模式以及Intent在数据传递中的角色。 1. **Activity启动模式**: - **Standard**:...

Global site tag (gtag.js) - Google Analytics