【发布时间】:2017-10-13 11:27:21
【问题描述】:
我有一个类用作 RecyclerView 的数据模型,以便通过 Intent 将此类的对象从一个活动传递到另一个活动,我必须将其设为 Parcelable
现在的问题是我能够将对象从一个活动发送到另一个活动并检索它,这样应用就不会崩溃,但会在 logcat 屏幕中不断抛出 ClassNotFoundException .
我做错了什么?
----> Person.kt
@Parcelize
class Person(var name: String, var username: String, var address: String, val avatar: Int) : Parcelable
---->在 MainActivity.kt
val intent = Intent(this, ProfilePage::class.java)
intent.putExtra("clicked_person",person)
startActivity(intent)
---->。 onCreate() 在 ProfilePAge.kt 中
var person = intent.getParcelableExtra<Person>("clicked_person") as Person
还有Exception
E/Parcel: Class not found when unmarshalling: com.example.testkot.kotlinapp.Person
java.lang.ClassNotFoundException: com.example.testkot.kotlinapp.Person
请记住,应用程序不会崩溃,它会继续工作,但会在 logcat 中显示异常
【问题讨论】:
-
哪里抛出了异常?请显示整个堆栈跟踪?你是把这个
Intent和“附加”放在Notification中还是发送到AlarmManager? -
您是否尝试过将 person 对象放入 bundle 中,然后将这个 bundle 放入 Intent extra 中?
-
@KuLdipPaTel 如果您检查我的
Person.kt代码,它与您在评论中提到的接受的答案相匹配 -
@MalwinderSingh 使用
Bundle或像我在MainActivity.kt上那样传递参数有什么重大区别吗??
标签: android-intent kotlin parcelable