`

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)...

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

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

    Android中传递对象

    方法一:将一个公共类作为对象传输中介,但安全性差,可能由于多个类的调用导致传输出错。 将变量写成公共静态型,在A Activiy设置Center.a=new Obiect() 在 B Activiy接收 Object b=Center.a,如: public class ...

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

    该资源包含了一个activity之间传递对象的两种方式,包含了注释文档,简单易懂!

    Android Activity之间的数据传递方法总结

    在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法。 1、通过 Intent 传递 我们在进行 Activity 跳转时,是要有 Intent,此时 ...

    Android利用Intent启动和关闭Activity

    Android应用程序中一般都有多个Activity,在Activity中,通过调用StartActivity方法,并在该方法的参数中传递Intent对象,就可以实现不同Activity之间的切换和数据传递。 通过StartActivity方法传递intent对象来启动...

    android开发——简易计算器的设计报告.doc

    (2)多个Activity之间的跳转:通过Intent类实现屏幕之间的跳转(包括没有参数关系 和需要传递参数两种情况)。 (3)两个Activity之间进行数据交换:startActivity() 只有Intent一个参数;public void ...

    Android通过全局变量传递数据

    1 定义一个类继承Application public class MyApp extends Application 2 在AndroidMainfest xml中加入全局变量 android:name &quot; MyApp&quot; 3 在传数据类中获取全局变量Application对象并设置数据 myApp...

    Android基于Intent实现Activity之间数据传递的方法

    本文实例讲述了Android基于Intent实现Activity之间数据传递的方法。分享给大家供大家参考,具体如下: MainActivity: package com.test.intentdemo; import android.app.Activity; import android.content.Intent;...

    android中Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

    在一个应用程序中通常由多个Activity构成,都会在Manifestxml中指定一个主的Activity,如下设置 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的...

    Android开发之Activity详解

     一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,一个应用程序中的activity被指定为”main”activity,当第一次启动应用程序的时候呈现给用户的那个activity。每一个activity然后可以启动另一...

    Android动态加载Activity原理详解

    加载一个Activity肯定不会像加载一般的类那样,因为activity作为系统的组件有自己的生命周期,有系统的很多回调控制,所以自定义一个DexClassLoader类加载器来加载插件中的Activity肯定是不可以的。 首先不得不了解...

    Android Activity的启动过程源码解析

    Activity是Android中一个很重要的概念,堪称四大组件之首,关于Activity有很多内容,比如生命周期和启动Flags,这二者想要说清楚,恐怕又要写两篇长文,更何况分析它们的源码呢。不过本文的侧重点不是它们,我要介绍...

    Android基础总结篇之三:Activity的task相关介绍

    task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个task中的,后者被...

    Android编程实现全局获取Context及使用Intent传递对象的方法详解

    由于很多操作都是在活动中进行的,而活动本身就是一个 Context 对象,所以获取 Context 并不是那么困难。 但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离 Activity 类,由此在某些情况下,...

    android开发之关闭所有的activity的方法

    当app中打开了多个activity的时候,由于进入的比较深,所以,很多app不得不让用户一步一步退回到第一个界面(MainActivity),在一步一步退回的时候,逐个释放。 今天写kotlin来实现,在任意位置,直接退出应用的方法...

    Android Activity与Intent详解及示例代码

     之前的例子一直都是使用Activity,在一个Layout XML与一个Activity捆绑的情况下可以视为一个Form,多个Layout XML与一个Activity捆绑的话那就是个Application本身了。Intent可以分为显式Intent和隐式Intent:显式...

    Android提高之Activity+Intent用法示例

    之前的例子一直都是使用Activity,在一个Layout XML与一个Activity捆绑的情况下可以视为一个Form,多个Layout XML与一个Activity捆绑的话那就是个Application本身了。Intent可以分为显式Intent和隐式Intent:显式...

    Android编程实现两个Activity之间共享数据及互相访问的方法

    一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符、数值、成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

Global site tag (gtag.js) - Google Analytics