【发布时间】:2025-11-29 07:00:02
【问题描述】:
我正在尝试使用 intent.putExtra 将 ArrayList<driver> 传递给新活动,但出现此错误:
java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name =com.example.irinab.licenta3.CustomerAccount$driver);
驱动程序是我当前活动中的一个内部类,它已经实现了可序列化,所以我不明白为什么会出现这个错误。 这是驱动类的代码:
private class driver implements Serializable
{
private final String name;
private final boolean available;
driver(String nume, boolean av)
{
this.name = nume;
this.available = av;
}
}
这是意图的代码部分:
Intent startShowListIntent = new Intent(CustomerAccount.this, ShowList.class);
startShowListIntent.putExtra("id",ID);
startShowListIntent.putExtra("type",type);
startShowListIntent.putExtra("drivers",online_drivers);
startActivity(startShowListIntent);
谁能告诉我我做错了什么?感谢您的帮助!
【问题讨论】:
-
使用单例类而不是通过意图传递
-
我相信这不是完全的例外,你能搜索
Caused by吗? -
我认为在android中最好让你的类实现parcelable而不是serializable,因为与parceling相比,serilization涉及更多的内存流失,然后你可以使用intent.putParcelableArrayList(key , 价值);这是一个很好的实现 parcellable 的教程:wptrafficanalyzer.in/blog/…
-
@Irina 公开您的课程并确保它具有公共构造函数并查看是否有帮助
-
我认为你也应该为你的班级创建 getter 和 setter
标签: android android-activity arraylist