使用ArrayList<自定义对象>实现Parcelable

4

我认为这只是一个愚蠢的错误,但ArrayList总是最终成为null。这让我疯掉了,所以想要寻求帮助。

对象类:

import android.os.Parcel;
import android.os.Parcelable;

public class StoryTag implements Parcelable {

    private String tagTitle;
    private int occurrence;

    public StoryTag() {

    }

    public StoryTag(Parcel in) {
        tagTitle = in.readString();
        occurrence = in.readInt();
    }

    public String getTagTitle() {
        return tagTitle;
    }

    public void setTagTitle(String tagstring) {
        this.tagTitle = tagstring;
    }

    public int getOccurrence() {
        return occurrence;
    }

    public void setOccurrence(int occurrence) {
        this.occurrence = occurrence;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(tagTitle);
        dest.writeInt(occurrence);
    }

    public int describeContents() {
        return 0;
    }

    public static final Parcelable.Creator<StoryTag> CREATOR = new Parcelable.Creator<StoryTag>() {

        public StoryTag createFromParcel(Parcel in) {
            return new StoryTag(in);
        }

        public StoryTag[] newArray(int size) {
            return new StoryTag[size];
        }
    };
}

MainActivity:

Intent tagIntent=new Intent(this,DisplayTagList.class);
tagIntent.putExtra("taglist", taglist);
startActivity(tagIntent);
return true;

接收活动:

Bundle storyTagBundle = getIntent().getExtras();
ArrayList<StoryTag> listoftags = storyTagBundle.getParcelable("taglist");

非常感谢您能提供帮助。我认为这只是一个小错误,但我已经十分苦恼了。
谢谢!

请按照以下步骤操作:http://andhradroid.wordpress.com/2012/04/02/how-to-pass-the-object-one-activity-from-another/ - Ramesh Akula
1个回答

4

1
不要使用Serializable!请使用putParcelableArrayListExtra()。 - G. Blake Meike
1
@G.BlakeMeike - 我已经明确提到,在_OP_的情况下,他应该使用putParcelableArrayListExtra()Serializable部分只是一般用法。 - Rahul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接