Parcelable没有为POJO字段设置正确的值

时间:2016-02-22 21:29:29

标签: android retrofit parcelable

我正在使用Retrofit从后端加载数据。 POJO实现了Parcelable。我在阅读和写POJO时遇到问题。我认为这是因为字段名称与我从后端获得的名称不同。这是POJO:

        @SerializedName("poster_path")
        public String posterPath;
    ....
    private Movie(Parcel in) {
    ...
            posterPath= in.readString();
            ...

        }
...//more code
@Override
    public void writeToParcel(Parcel dest, int flags) {

        dest.writeString(posterPath);

    }

当我通过intent.getParcelableExtra获取POJO时,posterPath为null。我做错了什么。

1 个答案:

答案 0 :(得分:2)

使用Parcelable个对象时,您必须按照您编写的完全相同的顺序阅读Parcel,否则它将无效。

所以,如果你这样写的话:

dest.writeString("blah");
dest.writeInt(1);

你必须这样读:

str = in.readString();
someInt = in.readInt();

有关this articlethis tutorial上的更多信息。

This questionthis one此处的SO也会举例说明Parcelable