gpt4 book ai didi

java - 在现有的 java 类上使用 kotlin 实现 Parcelable

转载 作者:行者123 更新时间:2023-12-01 17:50:52 25 4
gpt4 key购买 nike

我正在使用UsbSerialForAndroid用于实现与设备的串行端口连接的库。

我需要跨 Activity 发送串行端口对象。 UsbSerialPort 的定义是 here .

目前,我的代码可以借助 IntentputExtra 方法返回指定端口地址的字符串。我希望将串行端口发送到其他 Activity (这是因为我无法从地址重新创建串行端口对象)。

为了将对象与 Intent 一起发送,该对象应该是可打包的。但原来的类文件是java中的。

如何在这样一个预先存在的java类上实现parcelable?我更喜欢使用 kotlin 语言来实现这一点。

编辑

似乎合乎逻辑的一个选项是使用原始 SerialUsbPort 类作为基类,并将新类扩展为可分割的(使用 @Parselize 注释),然后将旧对象转换为新对象(这对吗?)。

最佳答案

I wish to send the serial port to the other activity (this is because I am not able to recreate the serial port object from address).

不幸的是,要实现 Parcelable,您需要执行以下操作:告诉 Android 如何将一些数据写入 Parcel 以及如何从数据重新创建此对象。

@Parcelize 不会改变这个要求,它只是告诉编译器以标准方式生成这些方法。

要访问无法重新创建的“Activity ”对象,请扩展 Binder(有关 Java 中的示例,请参阅 https://developer.android.com/guide/components/bound-services#Binder)。现在,在实现 Parcelable 时,您可以将 Binder 存储在 Parcel 中。

关于java - 在现有的 java 类上使用 kotlin 实现 Parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com