草庐IT

parcelables

全部标签

android - 使用 Parcelable 而不是序列化对象的好处

据我了解,Bundle和Parcelable属于Android中执行序列化的方式。它用于例如在Activity之间传递数据。但是我想知道,例如,在将业务对象的状态保存到内部存储器的情况下,使用Parcelable而不是经典序列化是否有任何好处?它会比经典方式更简单或更快吗?我应该在哪里使用经典序列化以及在哪里更好地使用bundle? 最佳答案 来自“ProAndroid2”NOTE:SeeingParcelablemighthavetriggeredthequestion,whyisAndroidnotusingthebuilt-i

android - Parcelable 遇到 IOException 写入可序列化对象 getactivity()

所以我在logcat中得到了这个:java.lang.RuntimeException:ParcelableencounteredIOExceptionwritingserializableobject(name=com.resources.student_list.Student)我知道这意味着我的学生类不可序列化,但它是,这是我的学生类:importjava.io.Serializable;publicclassStudentimplementsComparable,Serializable{privatestaticfinallongserialVersionUID=1L;pri

android - 如何使我的自定义对象 Parcelable?

我正在尝试使我的对象可包裹。但是,我有自定义对象,这些对象具有我制作的其他自定义对象的ArrayList属性。最好的方法是什么? 最佳答案 您可以找到一些示例here,here(codeistakenhere),和here.您可以为此创建一个POJO类,但您需要添加一些额外的代码以使其Parcelable。看看实现。publicclassStudentimplementsParcelable{privateStringid;privateStringname;privateStringgrade;//Constructorpubli

android - 实现 Parcelable 接口(interface)时如何读/写 bool 值?

我正在尝试制作ArrayListParcelable为了将自定义对象列表传递给Activity。我开始写myObjectList扩展类ArrayList并实现Parcelable.MyObject的一些属性是boolean但是Parcel没有任何方法read/writeBoolean.处理这个问题的最佳方法是什么? 最佳答案 这就是我的做法......writeToParcel:dest.writeByte((byte)(myBoolean?1:0));//ifmyBoolean==true,byte==1从包裹中读取:myBool

java - 如何使用 ArrayList<Parcelable> 正确实现 Parcelable?

我在上课时遇到问题Parcelable.问题是,我正在尝试将类(class)中的成员写入包裹,该成员是ArrayList。目的。ArrayList是Serializable,并且列表中的对象(ZigBeeDev)是Parcelable.以下是相关代码:packagecom.gnychis.coexisyst;importjava.util.ArrayList;importjava.util.Iterator;importandroid.os.Parcel;importandroid.os.Parcelable;publicclassZigBeeNetworkimplementsParc

java - 从 Parcelable 类中读取和写入 java.util.Date

我正在使用Parcelable类。如何在此类中读取和写入java.util.Date对象? 最佳答案 使用writeSerializable其中日期是可序列化的。(但这不是一个好主意。请参阅下面的另一种更好的方法)@OverridepublicvoidwriteToParcel(Parcelout,intflags){//Writeobjectout.writeSerializable(date_object);}privatevoidreadFromParcel(Parcelin){//Readobjectdate_object=

java - 从 Parcelable 类中读取和写入 java.util.Date

我正在使用Parcelable类。如何在此类中读取和写入java.util.Date对象? 最佳答案 使用writeSerializable其中日期是可序列化的。(但这不是一个好主意。请参阅下面的另一种更好的方法)@OverridepublicvoidwriteToParcel(Parcelout,intflags){//Writeobjectout.writeSerializable(date_object);}privatevoidreadFromParcel(Parcelin){//Readobjectdate_object=

java - Android运行时错误: Parcel: unable to marshal value

我正在尝试使用intent.puExtra函数将HashMap传递给新Activity。单步调试调试器似乎添加了HashMap没有问题,但是当调用startActivty()时,我收到一个运行时错误,指出Parcel:无法编码值com.appName.Liquor。Liquor是我创建的自定义类,我相信它与HashMap结合使用会导致问题。如果我传递一个字符串而不是我的HashMap它加载下一个Activity没问题。主要Activitylv.setOnItemClickListener(newOnItemClickListener(){publicvoidonItemClick(Ad

java - Android运行时错误: Parcel: unable to marshal value

我正在尝试使用intent.puExtra函数将HashMap传递给新Activity。单步调试调试器似乎添加了HashMap没有问题,但是当调用startActivty()时,我收到一个运行时错误,指出Parcel:无法编码值com.appName.Liquor。Liquor是我创建的自定义类,我相信它与HashMap结合使用会导致问题。如果我传递一个字符串而不是我的HashMap它加载下一个Activity没问题。主要Activitylv.setOnItemClickListener(newOnItemClickListener(){publicvoidonItemClick(Ad

【Harmony OS】【JAVA UI】鸿蒙系统中怎么使用 Parcel 进行存储数据或数据传递

1.Parcel简介在IPC过程中,发送方可以使用Parcel提供的写方法,将待发送的数据以特定格式写入Parcel对象。接收方可以使用Parcel提供的读取方法从Parcel对象中读取特定格式的数据。Parcel实例的默认容量为200KB。如果您想要更多或更少,请使用setCapacity(int)更改它。注意:只有以下数据类型的数据才能写入或从包裹中读取:byte,byteArray,short,shortArray,int,intArray,long,longArray,float,floatArray,double,doubleArray,boolean,booleanArray,ch