我在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);
答案 0 :(得分:0)
我强烈建议您调查parcelable而不是Serializable,因为它在Android上要快得多。首先,你班级的Parcelable
然后发送带有意图的列表,请执行以下操作
i.putParcelableArrayList("FriendsArray", friends);
要在下一个活动中检索它,请执行以下操作
ArrayList<IComplexListItem> friends = (ArrayList<IComplexListItem>) getIntent().getParcelableArrayListExtra("FriendsArray");