在進行Activity通信的時候遇到了一個問題

這個問題是第一次遇到?通過控制台的報錯以及在網上找的一些內容返現。如果想使用bundle.putSerializable("person",person);進行的數據的傳遞,前提是Person必須要序列化。

在網上了解到,不是將一個類實現了Serializable之后就可以看成是可序列化的類,還需要看這個類的所有屬性是否可以進行序列化。在java的規范中,一個類能否序列化,不但取決於這個類是否實現Serializable接口,還卻決於這個類中的屬性是否可序列化。
//序列化后的Person對象
Public class Person implements Serializable{
private String name;
private int age;
private String address;
public Person(String name,int age,String address)
{
this.name = name;
this.age = age;
this.address = address;
}
...
public String()
{
return "name="+name+" age="+age+" address="+address;
}
}
Intent intent = new Intent(this,xxxx.class)
intent.setAction("xxxxxxxxxxxxxxxxx");//使用隱式方式調用Activity
Bundle bundle = new Bundle();
Person person = new Person("Sam",23,"beijing");
bundle.putSerializable("person",person);
intent.putExtras(bundle);
startActivity(intent);
通過以上的方式即可實現Activity之間的數據傳遞。
在使用Bundle進行android 的Activity之間的數據傳遞的時候,不能傳遞較大的數據否則會報異常。