首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android Parcelable编写类对象

Android中的Parcelable是一种序列化机制,用于在不同组件之间传递自定义类对象。它比Java中的Serializable更高效,因为它是针对Android平台进行了优化的。

Parcelable接口是Android SDK提供的一个接口,要实现Parcelable,需要以下几个步骤:

  1. 在类中实现Parcelable接口,并实现以下方法:
    • writeToParcel(Parcel dest, int flags):将对象的数据写入Parcel对象中。
    • describeContents():返回当前对象的内容描述,一般返回0即可。
  • 在类中添加一个名为CREATOR的静态字段,并实现Parcelable.Creator接口。这个接口有两个方法:
    • createFromParcel(Parcel source):从Parcel对象中创建类的实例。
    • newArray(int size):创建一个指定大小的类对象数组。

下面是一个示例代码:

代码语言:txt
复制
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对象来传递。例如:

代码语言:txt
复制
MyClass myObject = new MyClass("John", 25);
Intent intent = new Intent(this, AnotherActivity.class);
intent.putExtra("myObject", myObject);
startActivity(intent);

在接收端的Activity中,可以通过getParcelableExtra()方法获取传递过来的自定义类对象。例如:

代码语言:txt
复制
MyClass myObject = getIntent().getParcelableExtra("myObject");

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mmp)

以上是关于Android Parcelable编写类对象的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券