数据类型如何实现Parcelable接口
时间: 2024-01-09 20:04:06 浏览: 105
Android Parcelable接口使用方法详解
要实现Parcelable接口,需要以下几个步骤:
1. 在数据类型所在的包下,创建一个实现了Parcelable接口的类,例如:
```
public class MyData implements Parcelable {
private int id;
private String name;
// 构造方法、getter和setter等...
// 实现Parcelable接口的方法
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(name);
}
public static final Parcelable.Creator<MyData> CREATOR = new Parcelable.Creator<MyData>() {
@Override
public MyData createFromParcel(Parcel source) {
return new MyData(source);
}
@Override
public MyData[] newArray(int size) {
return new MyData[size];
}
};
private MyData(Parcel in) {
id = in.readInt();
name = in.readString();
}
}
```
在这个例子中,我们定义了一个MyData类,它有两个属性:id和name。这个类实现了Parcelable接口,并实现了describeContents()和writeToParcel()方法。
2. 在writeToParcel()方法中,我们需要将MyData对象的属性写入到Parcel中。这里我们使用了Parcel的writeInt()和writeString()方法,将id和name写入Parcel中。
3. 在CREATOR实例变量中,我们定义了一个Parcelable.Creator对象,它有两个方法:createFromParcel()和newArray()。createFromParcel()方法用于从Parcel中读取MyData对象,newArray()方法用于创建一个MyData数组。
4. 在MyData的构造方法中,我们从Parcel中读取id和name属性。
完成以上步骤后,MyData类就实现了Parcelable接口,可以作为Intent的数据类型使用。在Intent中传递MyData对象时,可以使用putExtra()方法或putParcelableArrayListExtra()方法。在接收Intent的Activity中,可以使用getParcelableExtra()方法或getParcelableArrayListExtra()方法获取MyData对象或MyData对象的ArrayList。
阅读全文