`

Activity传递一个或者多个对象

 
阅读更多
Activity之间传递对象,或者通过Bundle传递对象的两种方式。

1:Serializable方式
  传递一个对象

2:Parcelable方式
  传递一个对象、传递多个对象(ArrayList<Object>)


方式一:Serializable

     传递类:
    
public class CustomeClass implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7060210544600464481L;
	private String name;
	private String id;
	private int age;
	private String sex;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}

}



       发送部分:
      
        CustomeClass cc = new CustomeClass();
        cc.setAge(21);
        cc.setId("123456");
        cc.setName("mingkg21");
        cc.setSex("男");
        
        Intent intent = new Intent(this, PersonInfo.class);
        intent.putExtra("PERSON_INFO", cc);
        startActivity(intent);


       
       接收部分:
      
        Intent intent = getIntent();
	CustomeClass cc = CustomeClass)intent.getSerializableExtra("PERSON_INFO");
	setTextView(R.id.id, cc.getId());
	setTextView(R.id.name, cc.getName());
	setTextView(R.id.sex, cc.getSex());
	setTextView(R.id.age, String.valueOf(cc.getAge()));



方式二:Parcelable

     传递类:
    
public class CustomeParcelable implements Parcelable {
	
	private String name;
	private String id;
	private int age;
	private String sex;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	public static final Parcelable.Creator<CustomeParcelable> CREATOR = new Creator<CustomeParcelable>(){

		public CustomeParcelable createFromParcel(Parcel source) {
			// TODO Auto-generated method stub
			CustomeParcelable cus = new CustomeParcelable();
			cus.name = source.readString();
			cus.id = source.readString();
			cus.age = source.readInt();
			cus.sex = source.readString();
			return cus;
		}

		public CustomeParcelable[] newArray(int size) {
			// TODO Auto-generated method stub
			return new CustomeParcelable[size];
		}
		
	};

	public int describeContents() {
		// TODO Auto-generated method stub
		return 0;
	}

	public void writeToParcel(Parcel dest, int flags) {
		// TODO Auto-generated method stub
		dest.writeString(name);
		dest.writeString(id);
		dest.writeInt(age);
		dest.writeString(sex);
	}

}


       发送部分:
      
CustomeParcelable cc = new CustomeParcelable();
cc.setAge(21);
cc.setId("123456");
cc.setName("mingkg21");
cc.setSex("男");
        
Intent intent = new Intent(this, PersonInfo.class);
intent.putExtra("PERSON_INFO", cc);
startActivity(intent);


        接受部分:
       
Intent intent = getIntent();
CustomeParcelable cc = intent.getParcelableExtra("PERSON_INFO");
setTextView(R.id.id, cc.getId());
setTextView(R.id.name, cc.getName());
setTextView(R.id.sex, cc.getSex());
setTextView(R.id.age, String.valueOf(cc.getAge()));



以上为Parcelable传递一个对象,若要实现传递多个对象,
传递部分:
Bundle bundle = new Bundle();
		bundle.putParcelableArrayList("mP3TagForNetDTOs",mP3TagForNetDTOs);
		msg.setData(bundle);
		endDocNotice.sendMessage(msg);


接受部分:
Bundle bundle =  msg.getData();
				mP3TagForNetDTOs = bundle.getParcelableArrayList("mP3TagForNetDTOs");


此文转载,来自:http://mingkg21.iteye.com/blog/438913
                                                          
                                                              Thanks.
分享到:
评论
2 楼 somefuture 2012-09-05  
龙哥IT 写道
setTextView(int,String)?

笑了。
1 楼 龙哥IT 2011-12-21  
setTextView(int,String)?

相关推荐

    Activity传递类对象源码

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

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

    这个接口通常包含一个或多个方法,这些方法用于接收并处理来自目标Activity(接收者)的数据。接口定义如下: ```java public interface DataCallback { void onDataReceived(Object data); } ``` 然后,在源...

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

    在提供的压缩包文件"app"中,可能包含了一个实现这两种方式的示例项目,通过查看和运行这个项目,你可以更好地理解和实践这两种Activity间对象传递的方法。学习和掌握这些技巧对于Android开发者来说至关重要,能够...

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

    对于非资源图片,我们可以将其转换为Bitmap,然后序列化成一个字节数组传递。发送Activity: ```java Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image); ByteArrayOutputStream...

    使用ViewModel解决多个Activity数据共享问题(Kotlin版)

    在Android应用开发中,尤其是使用Kotlin作为主要编程语言时,如何有效地在多个Activity之间共享数据是一个常见的挑战。`ViewModel`是Android架构组件之一,它为了解决这个问题提供了优雅的解决方案。本文将深入探讨...

    一个activity中多个handler和消息的处理过程

    首先,Handler是Android中的一个关键组件,它允许我们通过Message对象在不同的线程之间传递数据和执行任务。通常,我们在主线程(UI线程)中创建一个Handler实例,用于接收由其他工作线程发送的消息,并在适当的时间...

    Fragment与Activity使用Bundle传递数据

    1. **创建Bundle对象**:在发送数据的一方(通常是Activity),我们需要创建一个Bundle对象,然后将要传递的数据放入其中。例如,如果我们想传递一个字符串和一个整数,可以这样操作: ```java Bundle bundle = new...

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

    如果数据需要在多个Activity间持久保存,可以考虑使用静态成员变量或单例模式。这种方式简单直接,但需要注意线程安全和内存泄漏问题。 四、文件存储和ContentProvider 对于大容量或需要跨应用共享的数据,可以...

    多个Activity管理的例子

    一个应用程序可能包含多个Activity,每个Activity对应不同的功能或界面。本示例将深入探讨如何在Android项目中有效地管理和协调多个Activity。 首先,理解Activity生命周期是管理多个Activity的基础。Activity有七...

    Android中为应用添加多个Activity并实现参数传递案例

    一个应用可能由多个Activity组成,每个Activity负责不同的功能模块。在实际项目中,我们需要灵活地跳转和传递数据,以便各个Activity之间能有效地协同工作。本教程将详细讲解如何在Android中添加多个Activity以及...

    Android例子源码Activity间的数据传递

    在Activity间传递数据时,我们通常创建一个Intent对象,然后通过putExtra()方法添加数据,最后用startActivity()或startActivityForResult()启动目标Activity。 2. **基本类型数据传递**: Android允许我们将基本...

    Android应用:Intent打开另外一个Activity,Intent拨电话,Intent在2个Activity间传递参数

    首先,让我们讨论如何使用Intent打开另一个Activity。在Android中,Activity是用户界面的基本单元,当用户与应用交互时,可能会在不同的Activity之间切换。创建Intent并指定目标Activity即可实现这一操作。以下是一...

    多个Activity之间的交互(后一个传回前一个)

    本篇文章将深入探讨如何在Android中实现后一个Activity向前一个Activity传递数据并进行交互。 首先,我们创建两个Activity:ActivityA(aActivity)和ActivityB。ActivityA是主界面,用户在该界面操作后启动...

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

    Intent是一个包含消息的对象,可以用来启动一个Activity或服务,或者传递数据。创建Intent时,你需要指定目标Activity的类名,并通过setComponent()方法设置,或者通过setAction()和setCategory()来指定一个动作和...

    Android Activity间传递自定义类的对象

    在Android应用开发中,Activity...最后,关于博客链接中的"EX03_10"可能是指一个练习或示例代码,但没有具体的文件内容,无法在此提供进一步的细节。在实际学习或解决问题时,查看这个链接可能能提供更多的指导和帮助。

    activity与fragment的传递和fragment与Fragment的传递

    当我们从一个Activity启动另一个包含Fragment的Activity时,可以通过Intent传递基本数据类型或Parcelable/Serializable对象。然而,这种方式并不适用于Fragment,因为Fragment不直接接收Intent。我们可以将数据存储...

    用ActivityGroup解决TabHost中多个Activity跳转问题

    在Android应用开发中,TabHost通常用于创建带有多个选项卡的应用界面,每个选项卡对应一个Activity,用户可以方便地在不同功能之间切换。然而,在早期的Android版本中,如果每个选项卡都用独立的Activity实现,那么...

    安卓开发-Activity间数据传递和回传

    在安卓应用开发过程中,经常需要在多个`Activity`之间进行数据传递。这种交互对于实现复杂的应用逻辑至关重要,例如用户登录验证、表单填写等场景。本文将详细介绍如何在两个`Activity`(假定为A和B)之间传递数据...

    Android Intent传递对象

    在"ListDemo"这个例子中,我们可能需要传递一个对象列表。不论是Serializable还是Parcelable,都可以处理列表类型的数据。对于Serializable,可以直接传递`ArrayList&lt;Serializable&gt;`;对于Parcelable,需要传递`...

    Activity页面数据传递

    当你启动一个新的Activity时,可以通过Intent对象来传递数据。Intent不仅用于启动Activity,还可以用来传递数据。下面是一些常用的方法: - 使用`putExtra()`方法:在创建Intent时,你可以通过`putExtra(String ...

Global site tag (gtag.js) - Google Analytics