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");

非常感谢您提供的任何帮助。把我的头发拉到这里是因为我认为这是一个小错误。

4

2 回答 2

4

putExtra()and方法将getSerializable()存储和检索ArrayList<?>您的自定义对象,无需实现接口。(您的自定义对象类应该实现Serializable接口)。

但是在您的情况下,您可以简单地使用putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)and getParcelableArrayListExtra(String name)

于 2013-02-21T04:28:36.830 回答
0

ArrayList with Parcelable您可以从这个完整的示例中获得清晰的实施思路。

于 2013-02-21T07:23:26.803 回答