Java 无法在我自己的类中调用Intent.putExtra()

Java 无法在我自己的类中调用Intent.putExtra(),java,android,Java,Android,我在ArrayList中有装饰器模式实例 它工作得很好,但是当我尝试调用putExtra()时,它不起作用——我的活动无法启动 当我注释掉语句I.putExtra(FRIENDSARRAY,(Serializable)friends)它工作-活动开始。如何使用putExtra()添加它,如何从FriendlistTabHost类中读取它 List<IComplexListItem> friends = new ArrayList<IComplexListItem>();

我在
ArrayList
中有装饰器模式实例

它工作得很好,但是当我尝试调用
putExtra()
时,它不起作用——我的活动无法启动

当我注释掉语句
I.putExtra(FRIENDSARRAY,(Serializable)friends)它工作-活动开始。如何使用
putExtra()
添加它,如何从
FriendlistTabHost
类中读取它

List<IComplexListItem> friends = new ArrayList<IComplexListItem>();
JSONArray friendList = answer.getJSONArray("friendlist");

for (int i = 0; i < friendList.length(); i++) {
   ...
   FriendListItem actualFriend = new FriendListItem(i, 15, "name",41242214123);
   ComplexFriendListItem cpItem = new ComplexFriendListItem(actualFriend);
   friends.add(cpItem);
}

Intent i = new Intent();

i.putExtra(FRIENDSARRAY, (Serializable)friends);                     
i.setClass(mContext, FriendlistTabHost.class);
mContext.startActivity(i);
List friends=new ArrayList();
JSONArray-friendList=answer.getJSONArray(“friendList”);
for(int i=0;i
我强烈建议查看而不是序列化,因为它在Android上速度更快。因此,首先,在你的课堂上使用impement
Parcelable

然后,要发送带有意图的列表,请执行以下操作

i.putParcelableArrayList("FriendsArray", friends); 
ArrayList<IComplexListItem> friends = (ArrayList<IComplexListItem>) getIntent().getParcelableArrayListExtra("FriendsArray");
要在下一个活动中检索它,请执行以下操作

i.putParcelableArrayList("FriendsArray", friends); 
ArrayList<IComplexListItem> friends = (ArrayList<IComplexListItem>) getIntent().getParcelableArrayListExtra("FriendsArray");
ArrayList friends=(ArrayList)getIntent().getParcelableArrayListExtra(“FriendsArray”);

您能发布日志cat错误吗?java.lang.RuntimeException:包裹:无法封送值com.example.**.adapters。ComplexFriendListItem@42172a40此处已满:您可以发布/链接您的整个ComplexFriendListItem类吗?