2015-08-26 7 views
0

У меня есть экземпляры шаблона декоратора в ArrayList.Невозможно вызвать Intent.putExtra() в моем собственном классе

Это хорошо работает, но когда я пытаюсь позвонить 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

java.lang.RuntimeException: Посылка: не удалось маршалить значение com.example.***[email protected] здесь: http://pastebin.com/rvyT7EPB – vihkat

ответ

0

я настоятельно рекомендую посмотреть на parcelable вместо Сериализуемый, как это намного быстрее на Android. Так первое, impement Parcelable в классе

Затем отправить свой список с целью, сделать следующее

i.putParcelableArrayList("FriendsArray", friends); 

Чтобы получить его в следующей операции, сделайте следующее

+0

Ahh благодарит! : 3 – vihkat

+0

Не могли бы вы разместить/связать весь свой класс ComplexFriendListItem? –

+0

Без проблем, рад, что у вас это работает! –

Смежные вопросы