首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实施Parcelable

实施Parcelable
EN

Stack Overflow用户
提问于 2014-01-06 19:41:21
回答 1查看 225关注 0票数 0

我有我的班级视频,实现了Parcelable。我的构造函数有问题,给我带来问题的是变量mSource,它是一个ArrayList<URI>。我在线上插了一支箭,这给我带来了麻烦。

代码语言:javascript
运行
复制
public class Video implements Parcelable {
public URI mThumb;
public ArrayList<URI> mSource;
public String mTitle;
public String mSubTitle;
public String mDescription;

public Video(final URI thumb, final URI source, final String title, final String subtitle,
        final String description) {
    this.mThumb = thumb;
    this.mSource = new ArrayList<URI>(1);
    this.mSource.add(source);
    this.mTitle = title;
    this.mSubTitle = subtitle;
    this.mDescription = description;
}

public Bundle getAsBundle() {
    Bundle b = new Bundle();
    b.putString("title", mTitle);
    b.putString("subtitle", mSubTitle);
    b.putString("description", mDescription);
    b.putString("thumb", mThumb.toString());
    b.putString("source", mSource.get(0).toString());
    return b;
}

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}


@Override
public void writeToParcel(Parcel out, int arg1) {
    // TODO Auto-generated method stub
    out.writeString(mTitle);
    out.writeString(mSubTitle);
    out.writeString(mDescription);
    out.writeString(mThumb.toString());
    out.writeString(mSource.get(0).toString());
}

   public static final Parcelable.Creator<Video> CREATOR = new Parcelable.Creator<Video>() {
        public Video createFromParcel(Parcel in) {
            return new Video(in);
        }

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

    private Video(Parcel in) {
        mTitle = in.readString();
        mSubTitle = in.readString();
        mDescription = in.readString(); 
        mThumb = new URI(in.readString());
        mSource = new ArrayList<URI>();
        in.readTypedList(mSource, Video.CREATOR); //<----THIS LINE RIGHT HERE. 
    }

}

我已经尝试过readList,readTypedList,但是我一直收到错误,说它不适用于参数(.);有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 20:06:31

out.writeString意味着您不能使用in.readTypedList来读取它,您需要使用in.readString()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20957910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档