Java 传递一个包裹列表
我想在活动之间传递一个包含2个对象的可包裹数组Java 传递一个包裹列表,java,android,parcelable,parcel,Java,Android,Parcelable,Parcel,我想在活动之间传递一个包含2个对象的可包裹数组 Intent i = new Intent(); i.setClass(act, ChoiceLanguage.class); for(Language l:langueControl.getListeLangues()) { System.out.println("Contents" + l.getTuto_p1()); // no problem here ,
Intent i = new Intent();
i.setClass(act, ChoiceLanguage.class);
for(Language l:langueControl.getListeLangues())
{
System.out.println("Contents" + l.getTuto_p1()); // no problem here , my objects are stored and i can read them
}
i.putParcelableArrayListExtra("listeLangues", langueControl.getListeLangues());
act.startActivity(i);
但是当我试图在另一个活动中阅读我的arraylist时
ArrayList<Language> listeLangues= getIntent().getParcelableArrayListExtra("listeLangues");
for(Language l:listeLangues)
{
System.out.println("Contents" + l.getTuto_p1());// error here
}
ArrayList ListLanguages=getIntent().getParcelableArrayListExtra(“ListLanguages”);
for(语言l:ListLanguages)
{
System.out.println(“Contents”+l.getuto_p1());//此处出错
}
我得到了以下错误:03-27 16:26:46.842:E/AndroidRuntime(12495):java.lang.ClassCastException:java.lang.Boolean在尝试读取我列表中的第二个对象(显示第一个)时无法转换为com.dev.pojo.Language
我不明白为什么它会提到布尔值,因为我的对象中没有布尔值
非常感谢我不知道如何解决您的问题,但我使用可序列化文件来传递我复杂的附加信息。你可以试试那个,而不是用包裹
i.putParcelableArrayListExtra("listeLangues", langueControl.getListeLangues());
到
您是否尝试过使用toString()方法将print语句强制为字符串类型?@Bob Dunakey。谢谢你的回复。我试过你的解决办法,但我也犯了同样的错误。我不知道布尔值从何而来getIntent()返回什么?因为
语言
需要实现可序列化
。错误的解决方案。@r2DoesInc我已经尝试过你的解决方案,但同样的错误再次出现。非常感谢你
i.putExtra("listeLangues", langueControl.getListeLangues());