1、Serializable方式:自定义类型需要实现Serializable接口
class User implements Serializable {
private String username;
private String password;
// 这里省略了一些getter和setter方法
}
取数据时需要强转
User user = (User) intent.getSerializableExtra("user");
2、Parcelable方式:自定义类型需要实现Parcelable接口,原理是将一个对象的数据进行分解,分解后的数据都是Intent支持的数据类型
class User implements Parcelable{
private String username;
private String password;
// 这里省略了一些getter和setter方法
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeString(username);
parcel.writeString(password);
}
public static final Create<User> CREATOR = new Create<User>() {
@Override
public User createFromParcel(Parcel source) {
User user = new User();
user.setUsername(source.readString());
user.setPassword(source.readString());
return user;
}
@Override
public User[] newArray(int size) {
return new User[size];
}
}
}
取数据时需要强转
User user = (User) intent.getParcelableExtra("user");