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)ですgetParcelableArrayListExtra(String name)

于 2013-02-21T04:28:36.830 に答える
0

ArrayList with Parcelableこの完全なから、実装の明確なアイデアを得ることができます。

于 2013-02-21T07:23:26.803 に答える