Android中的Parcelable是一种序列化机制,用于在不同组件之间传递自定义类对象。它比Java中的Serializable更高效,因为它是针对Android平台进行了优化的。
Parcelable接口是Android SDK提供的一个接口,要实现Parcelable,需要以下几个步骤:
下面是一个示例代码:
public class MyClass implements Parcelable {
private String name;
private int age;
// 构造方法
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
// 实现Parcelable接口的方法
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
@Override
public int describeContents() {
return 0;
}
// 实现Parcelable.Creator接口的方法
public static final Parcelable.Creator<MyClass> CREATOR = new Parcelable.Creator<MyClass>() {
@Override
public MyClass createFromParcel(Parcel source) {
return new MyClass(source);
}
@Override
public MyClass[] newArray(int size) {
return new MyClass[size];
}
};
// 从Parcel对象中读取数据并构造类的实例
private MyClass(Parcel in) {
name = in.readString();
age = in.readInt();
}
// 其他方法和属性
// ...
}
使用Parcelable传递自定义类对象时,可以通过Intent的putExtra()方法来传递,或者通过Bundle对象来传递。例如:
MyClass myObject = new MyClass("John", 25);
Intent intent = new Intent(this, AnotherActivity.class);
intent.putExtra("myObject", myObject);
startActivity(intent);
在接收端的Activity中,可以通过getParcelableExtra()方法获取传递过来的自定义类对象。例如:
MyClass myObject = getIntent().getParcelableExtra("myObject");
推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mmp)
以上是关于Android Parcelable编写类对象的完善且全面的答案。
领取专属 10元无门槛券
手把手带您无忧上云