0

我想在活动之间传递一个包含 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 , my objects are stored and i can read them
        }
        i.putParcelableArrayListExtra("listeLangues", langueControl.getListeLangues());
        act.startActivity(i);

但是当我尝试在另一个活动中读取我的数组列表时

ArrayList<Language> listeLangues= getIntent().getParcelableArrayListExtra("listeLangues");  

                for(Language l:listeLangues)
                {
                    System.out.println("Contents" + l.getTuto_p1());// error here
                }

我收到以下错误:03-27 16:26:46.842: E/AndroidRuntime(12495): java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.dev.pojo.Language当它尝试读取列表的第二个对象时(显示第一个对象)

我不明白为什么它说布尔值,因为我的对象中没有任何布尔值

非常感谢

4

1 回答 1

0

我不知道如何解决您的问题,但我使用可序列化来传递我复杂的附加功能。你可以试试这个,而不是一个 parcelable。

    i.putParcelableArrayListExtra("listeLangues", langueControl.getListeLangues());

    i.putExtra("listeLangues", langueControl.getListeLangues());

http://developer.android.com/reference/android/content/Intent.html#putExtra

于 2013-03-27T15:42:44.993 回答