草庐IT

android - Kotlin 的 "@Parcelize"是否适用于非数据类?

我有简单的数据类。我的意思是,它们在逻辑上是数据类,但不是dataclass,因为我需要继承和其他构造函数。它们只有字段(基本类型为Int?、String?或List?等)和构造函数。我需要将它们(它们的所有字段都需要传递)从Activity传递到Activity,所以我需要使它们可分割(或者有更好的方法吗?)。我首先将它们创建为dataclass刚刚添加了@Parcelize.即使有一条警告和红线写着“CREATOR”之类的东西,我也可以忽略它们,并且应用程序按预期运行。但是,现在因为上面的原因,我把它们改成普通的类,突然出现编译错误。Error:java.util.NoSuchEl

Kotlin 中的 Android Parcelable

我有这样的Javaparcelable:@SuppressWarnings("rawtypes")publicstaticfinalParcelable.CreatorCREATOR=newParcelable.Creator(){publicKwerendaGraficznacreateFromParcel(Parcelin){returnnewKwerendaGraficzna(in);}publicKwerendaGraficzna[]newArray(intsize){returnnewKwerendaGraficzna[size];}};现在尝试在Kotlin中实现它:com

Kotlin 中的 Android Parcelable : CREATOR not found on Parcelable data class

随着KotlinRC的发布,我开始编写一个应用程序来学习它,但是我不知道如何让Parcelable工作。数据类:dataclassProject(valreponame:String,valusername:String,vallanguage:String,valvcsUrl:String,valbranches:Map):Parcelable{companionobject{valCREATOR=object:Parcelable.Creator{overridefuncreateFromParcel(`in`:Parcel):Project{returnProject(`in`)

parcelable - 将 Parceler 与带有构造函数的 Kotlin 数据类一起使用以进行序列化

有没有办法使用Parceler使用Kotlin数据类和构造函数进行序列化,而不为每个字段使用@ParcelProperty注释?如果我尝试使用这样的库:@ParceldataclassValve@ParcelConstructorconstructor(valsize:Int)我得到错误:Parceler:没有找到构造函数参数arg0的相应属性。但是,如果我添加@ParcelProperty("size")它就可以了。这是为什么呢?更新:还有其他方法可以使用这个库。我可以删除@ParcelConstructor注释,但是我会得到错误Error:Parceler:No@ParcelCon

android - 使用 Parcelable 接口(interface)时如何序列化空值

关于我的代码示例,如果一个Locable的变量为空,我该怎么办?例如,现在如果l.getZoom()返回null,我得到NullPointerException。@OverridepublicvoidwriteToParcel(Parcelparcel,intarg1){parcel.writeInt(count);for(Locablel:locableArr){parcel.writeInt(l.getOriginId());parcel.writeInt(l.getLocableType());parcel.writeInt(l.getZoom());parcel.writeDo

android - 将 Parcelable 的一个子类写入另一个 Parcel

我有一个实现Parcelable接口(interface)的类:classAimplementsParcelable{}我有另一个类B包含一个A对象作为实例变量。在类B内的writeToPacel中,我想将对象B写入Parcel:classBimplementsParcelable{publicvoidwriteToParcel(Parceldest,intflags){dest.write???}}如何写和读? 最佳答案 classBimplementsParcelable{//letsassumeyouhaveAasadatam

android - 读写 Parcelable 对象数组

我有以下类,它从/向包裹读取和写入对象数组:classClassABCextendsParcelable{MyClass[]mObjList;privatevoidreadFromParcel(Parcelin){mObjList=(MyClass[])in.readParcelableArray(com.myApp.MyClass.class.getClassLoader()));}publicvoidwriteToParcel(Parcelout,intarg1){out.writeParcelableArray(mObjList,0);}privateClassABC(Parce

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