草庐IT

android - 有没有一种方便的方法可以使用 Kotlin 在 Android 中创建 Parcelable 数据类?

我目前正在使用优秀的AutoParcel在我的Java项目中,它有助于创建Parcelable类。现在,我为下一个项目考虑的Kotlin具有数据类的概念,它会自动生成equals、hashCode和toString方法。有没有一种方便的方法可以方便地使Kotlin数据类Parcelable(无需手动实现方法)? 最佳答案 Kotlin1.1.4出来了Android扩展插件现在包括一个自动Parcelable实现生成器。在主构造函数中声明序列化的属性并添加@Parcelize注解,会自动创建writeToParcel()/create

Android:Parcelable 和 Serializable 之间的区别?

为什么Android提供2个接口(interface)来序列化对象?可序列化对象是否与AndroidBinder和AIDL文件互操作? 最佳答案 在Android中,我们不能只将对象传递给Activity。为此,对象必须实现Serializable或Parcelable接口(interface)。可序列化Serializable是标准的Java接口(interface)。您可以只实现Serializable接口(interface)并添加覆盖方法。这种方法的问题是使用了反射,而且这是一个缓慢的过程。此方法会创建大量临时对象并导致大量

Android:Parcelable 和 Serializable 之间的区别?

为什么Android提供2个接口(interface)来序列化对象?可序列化对象是否与AndroidBinder和AIDL文件互操作? 最佳答案 在Android中,我们不能只将对象传递给Activity。为此,对象必须实现Serializable或Parcelable接口(interface)。可序列化Serializable是标准的Java接口(interface)。您可以只实现Serializable接口(interface)并添加覆盖方法。这种方法的问题是使用了反射,而且这是一个缓慢的过程。此方法会创建大量临时对象并导致大量

java - RealmObject 和 Parcelable

我是Android版Realm的新手,所以我不确定我是否以正确的方式处理这个问题。我有一个看起来像这样的类:publicclassEntryextendsRealmObjectimplementsParcelable{...}问题是Parcelable接口(interface)包含像describeContents()writeToParcel()这样的方法,而RealmObjects不应该有除了getter和setter:Error:(81,17)error:Onlygettersandsettersshouldbedefinedinmodelclasses所以我的问题是:如何让这两

android - 如何使用 Parcelable 传递 Drawable

我有一个类(class),其中我有一个Drawable作为成员。我使用这个类作为Parcelable额外的跨Activity发送数据。为此,我扩展了parceble,并实现了所需的功能。我能够使用读/写int/string发送基本数据类型。但是我在编码Drawable对象时遇到了问题。为此,我尝试将Drawable转换为bytearray,但我得到了类转换异常。我正在使用以下代码将我的Drawable转换为字节数组:Bitmapbitmap=(Bitmap)((BitmapDrawable)mMyDrawable).getBitmap();ByteArrayOutputStreamst

android - Parcel.readStringArray() 的参数是什么?

我正在尝试通过使用Parcelable将状态保存在我的Fragment中。当我想取回我保存在Parcelable中的字符串数组时,这会导致以下代码:publicMyObjectcreateFromParcel(Parcelin){titles=in.readStringArray(???);}现在readStringArray需要一个参数,一个String[]...但是为什么呢?它可以只给出我存储在其中的字符串。我不知道先验有多少,所以这很糟糕。:(documentation说如下:也就是说,什么都没有。编辑:如果有人有同样的问题:我最终使用writeBundle()/readBund

android - 解码 Android Intent Parcelable 时找不到类

我有一个ArrayList我在activities之间经过.在这个ArrayList是由class制成的对象其中有四个变量。其中一个变量是另一个ArrayList来自另一个class.我已经在两者上实现了Parcelable并且我很确定我已经正确地完成了parcelable方法。以下是错误:错误:03-1802:37:27.063:D/dalvikvm(3249):GC_FOR_ALLOCfreed82K,6%free3020K/3180K,paused1ms,total3ms03-1802:37:27.093:I/dalvikvm-heap(3249):Growheap(fragca

android - 通过 Parcel 传输 ByteArray 返回 NullPointerException

importandroid.os.Parcel;importandroid.os.Parcelable;publicclassMClassimplementsParcelable{privatebyte[]_byte;publicMClass(){}publicMClass(Parcelin){readFromParcel(in);}publicbyte[]get_byte(){return_byte;}publicvoidset_byte(byte[]_byte){this._byte=_byte;}publicintdescribeContents(){return0;}publi

android - SecurityException : Parcel. readException 来自谷歌分析代码

我们的应用程序从我们的崩溃报告软件中收到了很多不同的SecurityException报告。这是崩溃的堆栈跟踪:java.lang.SecurityException:Unabletofindappforcallerandroid.app.ApplicationThreadProxy@43fda840(pid=17925)whenregisteringreceiverandroid.content.IIntentReceiver$Stub$Proxy@43fd9458atandroid.os.Parcel.readException(Parcel.java:1431)atandroid

android - 帮助传递 ArrayList 和 parcelable Activity

所以我昨天和昨晚的大部分时间都在谷歌搜索,但似乎无法理解如何将数组列表传递给子Activity。有大量示例和fragment传递primitive数据类型,但我拥有的是一个address类型的数组列表(下面的address.java)。我在stackoverflow和网络上找到了很多关于这个的东西,但除了一个GeoPoint示例之外,没有什么能引起很多关注。再一次,在我看来,他们只是将GeoPoint对象扁平化为两个整数并将其传入。我不能这样做,因为我的地址类可能会扩展为包括整数、float等。现在,为了简单起见,下面的测试应用程序只有两个字符串。我想如果我能让parcelalbe的东