kotlin - 包裹中的 ClassCastException
问题描述
当我尝试在 Second_Activity 中使用 ArrayList 时,出现错误。
我找不到解决方案。
我试过了:
data class Site(
var site: String? = null,
var imageArray: ArrayList<Uri>? = null,
var date: String? = null
) : Parcelable {
constructor(parcel: Parcel) : this(parcel.readString(),
parcel.readArrayList(ClassLoader.getSystemClassLoader()) as ArrayList<Uri>?,
parcel.readString())
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(site)
parcel.writeArray(arrayOf(imageArray))
parcel.writeString(date)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<Site> {
override fun createFromParcel(parcel: Parcel): Site {
return Site(parcel)
}
override fun newArray(size: Int): Array<Site?> {
return arrayOfNulls(size)
}
}
}
var mArray = ArrayList<Site>()
我尝试使用 'mArray[0].date'
这是我得到的错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{kr.ac.***.Second_Activity}:
java.lang.ClassCastException: kr.ac.***.First_Activity$Site cannot be cast to kr.ac.***.Second_Activity$Site
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2950)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3085)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6853)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)
我只是不确定如何在打包时读取/写入 ArrayList。如何在 Second_Activity 中使用 ArrayList?
谢谢。
解决方案
推荐阅读
- c - 无法用 C 在 Mac 上创建文件?
- flutter - Flutter Interactive Viewer 显示图像的缩小版本
- python - 将带有 yield(string) 的 python 函数翻译成 C++
- cakephp - cakephp 3中的路线和菜单链接问题
- java - 如何动态加载 CDI 事件观察者?
- java - 如何在按钮Android Studio中保存触摸次数的值
- opencv - AttributeError:尽管使用“opencv_extras”配方,模块'cv2'没有属性'face'
- c# - Azure 存储 Blob 下载进度指示器
- google-api - 检索 Google 共享驱动器文件夹的网络视图链接
- node.js - 如何部署 azure webapp 以便安装节点模块