- 在Activity中传递自定义数据时,需要实现 Serializable或者Parcelable接口。可以用bundle putSerializable(String,Serizlizable)或者直接用intent putExtra(String,Serizlizable)两种方法。
- 自定义的数据是需要全部序列化的,包括其包含的对象。如下:
- A对象可以被传递
public class A implemet Serializable{
private String name;
private int Age;
} - A对象是不可以被传递的,因为其包含的对象B没有序列化。
public class A implemet Serializable{
private String name;
private int Age;
private B b;
class B{
private String ID;
}
} - 这样写的A对象才能被传递
public class A implemet Serializable{
private String name;
private int Age;
private B b;
class B implement Serializable{
private String ID;
}
}
- A对象可以被传递
- 另外需要注意的是,当对象中的集合保存的数据类型是自定义数据时,也需要序列化这个自定义数据,不然数据无法传递。如下:
- A对象不能被传递
public class A implemet Serializable{
private String name;
private int Age;
private List<B> data;
class B {
private String ID;
}
} - A对象可以被传递
public class A implemet Serializable{
private String name;
private int Age;
private List<B> data;
class B Serializable{
private String ID;
}
}
- A对象不能被传递
- 搞清楚这些问题后,妈妈再也不用担心我的数据无法传递了。
网友评论