当前位置: 首页 > 面试题库 >

Android中的Parcelable是什么

沈伟
2023-03-14
问题内容

public static final Parcelable.Creator CREATOR
= new Parcelable.Creator () {
public MyParcelable createFromParcel(Parcel in) {
return new MyParcelable(in);
}

     public MyParcelable[] newArray(int size) {
         return new MyParcelable[size];
     }
  };

  private MyParcelable(Parcel in) {
     mData = in.readInt();
  }
}

在我的Android课程中,讲师使用了这段代码,他们并没有对此做充分的解释。如何解释此代码?我尝试阅读文档,但无法解释。


问题答案:

这个概念叫做
包裹

Parcelable是Java
Serializable的Android实现。它假定某种结构和处理方式。与标准Java序列化相比,这种方式可以相对快速地处理Parcelable。

为了将您的自定义对象解析为其他组件,他们需要实现android.os.Parcelable接口。它还必须提供一个称为CREATOR的静态最终方法,该方法必须实现Parcelable.Creator接口。

您编写的代码将成为您的模型类。

您可以在Activity中使用Parcelable,例如:

intent.putExtra("student", new Student("1")); //size which you are storing

并得到这个对象:

Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");

学生是模型班级的名称。用你的代替它。

简单来说,Parcelable用于将模型类的整个对象发送到另一个页面。

在您的代码中,它在模型中,并且将int值 大小 存储到Parcelable对象中,以便在其他活动中发送和检索。

参考:

教程1

教程2

教程3



 类似资料:
  • 我一直在将s写入,而不关注flags字段,这是方法签名中的一个参数,它工作得很好,但我遇到了一个无法再忽略它们的实现: 这是我编写的一个到实用程序/从到/从实用程序,我想知道在编写它们时,是否应该将标志按原样传递给Key和Value,或者应该为Key传递0,而为Value传递。 我在文档中读到了什么是标志的定义: PARCELABLE_WRITE_RETURN_VALUE 在API级别1中添加 与

  • 本文向大家介绍Android中的Parcelable序列化对象,包括了Android中的Parcelable序列化对象的使用技巧和注意事项,需要的朋友参考一下 今天查阅资料,简单了解了一下Parcelable接口,它是android提供的序列化对象的接口,比java中的 Serializable高效些。通过这个接口序列化对象主要有两步: 1.实现public void writeToParcel(

  • 本文向大家介绍Android中Parcelable的作用实例解析,包括了Android中Parcelable的作用实例解析的使用技巧和注意事项,需要的朋友参考一下 在android提供了一种类型:Parcel。被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。   Parcelable实现要点:需

  • 本文向大家介绍Android中的Parcelable和Serializable之间的区别,包括了Android中的Parcelable和Serializable之间的区别的使用技巧和注意事项,需要的朋友参考一下 本示例演示了Android中可打包和可序列化之间的区别 可序列化 可序列化是一个可标记的接口,或者我们可以将其称为空接口。它没有任何预先实现的方法。可序列化将把一个对象转换为字节流。因此,

  • 本文主要介绍Parcelable和Serializable的作用、效率、区别及选择。 1、作用 Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在程序内不同组件间以及不同Android程序间(AIDL)高效的

  • 当我在活动中获得意向性额外时,我有一个错误: