`

Parcelable在Activity之间传递对象数组

 
阅读更多

1.首先你的对象需要被Parcelable

Person.java

public class Person implements Parcelable
{
	private String name;
	private String address;
	
	public Person(String name, String address)
	{
		this.name = name;
		this.address = address;
	}
	
	public String getName()
	{
		return this.name;
	}
	
	public String getAddress()
	{
		return this.address;
	}
	
	/**	下面实现的是对象的序列化*/
	public int describeContents() 
	{
		return 0;
	}
	
	public void writeToParcel(Parcel dest, int flags)
	{
		dest.writeString(name);
		dest.writeString(address);
	}
	
	public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>()
	{
		public Person createFromParcel(Parcel source)
		{
			Person person = new Person("","");
			person.name = source.readString();
			person.address = source.readString();
			return person;
		}
		public Person[] newArray(int size)
		{
			return new Person[size];
		}
	};

}

 

2.

传递

class BtnSeeLocationListener implements OnClickListener
    {

		public void onClick(View v)   
		{
			
			Intent intent = new Intent();
			intent.setClass(Main.this, MapViewActivity.class);
			Bundle bundle = new Bundle();

			bundle.putParcelableArrayList(SER_KEY, personList);

                        //这里不适用Bundle应该也可以,用下面的方法替代
                       //intent.putParcelableArrayListExtra(SER_KEY, personList);

                        intent.putExtras(bundle);
			startActivity(intent);
		}
    	
    }

 

3.接收

 

Intent intent = getIntent();
personList = (ArrayList<Person>)intent.getExtras().getSerializable(Main.SER_KEY);//接收对象
 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Intent传递对象、对象数组

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

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

    通常,我们使用Intent来在不同Activity之间传递数据,但当需要传递复杂对象时,如自定义的Java对象,就需要使用到Parcelable接口。这个压缩包文件"实现Parcelable接口的方式借助Intent实现Android工程中Activity之间...

    Activity之间传递数据

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

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

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

    Android Parcelable序列化自定义类集合在Activity间传递

    在Activity之间传递Parcelable对象时,可以使用`Intent`的`putExtra()`方法,传入自定义的键和Parcelable对象。对于集合,可以使用`putParcelableArrayListExtra()`。 5. **Activity间的数据传递**: 起始...

    【Intent传递】对象、数组

    四、传递数组和集合 1. 基本类型数组:可以使用putExtra()的重载版本,如putExtra(String name, int[] value)来传递整型数组,接收端使用getIntArrayExtra()获取。 2. 对象数组:对象数组的传递方式与单个对象相似,...

    Activity跳转时传递Bitmap对象

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

    android activityIntent 传值 传对象

    本文将深入探讨如何使用Intent在Activity之间传递基本数据类型、复杂对象以及实现Parcelable或Serializable接口的对象。 1. **基本数据类型的传值** Intent提供了putExtra()方法来传递基本数据类型,如字符串、...

    【Intent传递】对象、数组 DEMO

    4. **传递数组和集合** 与简单类型类似,数组和集合(如ArrayList、HashSet等)也可以通过Intent传递,但需要额外处理。例如,传递一个字符串数组: ```java String[] array = {"item1", "item2"}; intent....

    Android传递Bitmap对象在两个Activity之间

    在Android开发中,有时我们需要在不同的Activity之间传递数据,其中包括Bitmap对象和其他支持序列化的Java对象。Bitmap对象通常用于处理图像,比如从网络上下载图片并在ImageView中显示。本篇文章将详细探讨如何通过...

    eclipse 下的android Activity值传递

    值传递是Activity之间通信的重要方式,尤其在数据共享、状态保存等方面扮演着关键角色。在Eclipse环境下开发Android应用时,理解并掌握Activity之间的值传递至关重要。本文将详细探讨在Eclipse下如何进行Android ...

    Android进程间传递对象

    在Android中,Parcelable是比Serializable更高效的数据序列化方式,用于在内存中创建对象的二进制表示,便于在不同进程之间传递。为了使一个对象可被Parcelable,你需要实现Parcelable接口并提供读写对象字段的方法...

    实验七 使用Intent在Activity间传输数据

    显式Intent明确指定了要启动的Activity,通常用于在同一应用内的不同Activity之间传递数据;而隐式Intent则不指定具体的目标Activity,而是根据Intent中的Action、Data、Category等信息,由系统自动匹配合适的处理者...

    Android Activity之间的跳转以及传递参数源代码下载

    当数据量较大或者需要在多个Activity之间共享时,可以考虑使用Parcelable接口或Serializable接口来实现对象的序列化,然后通过Intent传递。 关于Parcelable接口,它提供了比Serializable更高的序列化性能,适用于...

    Android 数据传递(Intent、Bundle、Serializable、Parcelable等)

    在Android应用开发中,数据传递是至关重要的一个环节,它涉及到不同组件间的通信,比如Activity、Service、BroadcastReceiver之间的交互。本篇文章将深入探讨四种主要的数据传递方式:Intent、Bundle、Serializable...

    Parcelable in Android

    这在Activity之间的intent传递、保存Fragment状态或使用Binder进行跨进程通信时特别有用。与Serializable相比,虽然实现Parcelable较为复杂,但其优势在于速度和内存使用效率。 实现Parcelable接口通常涉及以下步骤...

    利用Parceable传递复杂对象

    3. **使用Intent传递Parceable对象**:一旦你的对象实现了Parceable,就可以通过Intent在Activity之间传递了。例如,你可以这样使用: ```java Intent intent = new Intent(this, TargetActivity.class); intent....

    (源码)Activity之间实现跳转和传参

    除了基本类型,Intent还可以传递更复杂的数据类型,如Parcelable对象(比如自定义类实例)和Serializable对象(包括数组和集合)。如果你需要传递大量的数据或者更复杂的对象,建议使用Parcelable接口,因为它的性能...

    Android-ActivitySample:在活动之间传递自定义对象

    1. **Parcelable接口**:在Android中,为了在不同组件间传递对象,尤其是Activity之间,对象需要实现Parcelable接口。Parcelable接口提供了序列化和反序列化的方法,使得对象能够被转换为字节数组并重新构造。在...

Global site tag (gtag.js) - Google Analytics