Activity其间传递类对象

Activity之间传递类对象

Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[],还有实现Serializable、Parcelable接口的类对象。

 

传递类对象以前一直没搞懂怎么做,都是用静态引用。现在终于搞懂了,实现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()));

 

 

搞定,打完收工。。。

1 楼 fanfq 2009-10-28  
要是传递一个List该怎么做啊?我也尝试了,但是不行了啊,还望请教

        CustomeClass cc = new CustomeClass();
        cc.setAge(21);
        cc.setId("123456");
        cc.setName("mingkg21");
        cc.setSex("男");

        List<CustomeClass> list = new ArrayList<CustomeClass>();
        list.add(cc);
       
        Intent intent = new Intent(this, PersonInfo.class);
        intent.putExtra("PERSON_INFO", list);
        startActivity(intent);

我是这么想的,但是不行的哇,
2 楼 mingkg21 2009-10-28  
用Serializable接口传递对象
http://mingkg21.iteye.com/admin/blogs/463895

发送部分
CustomeParcelable cc = new CustomeParcelable();  
cc.setAge(21);  
cc.setId("123456");  
cc.setName("mingkg21");  
cc.setSex("男");  

ArrayList<CustomeParcelable> list = new ArrayList<CustomeParcelable>();
list.add(cc);          

Intent intent = new Intent(this, PersonInfo.class);  
intent.putParcelableArrayListExtra("PERSON_INFO", cc);  
startActivity(intent);  


接收部分
Intent intent = getIntent();  
ArrayList<CustomeParcelable> list = new ArrayList<CustomeParcelable>();
list = intent.getExtras().getParcelableArrayList("PERSON_INFO");  

 
3 楼 mingkg21 2009-10-28  
上面写错了。。。

用Parcelable接口传递对象
4 楼 pgmsoul 2011-06-20  
PersonInfo是什么东西?