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()));?
?
搞定,打完收工。。。
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是什么东西?