我正在使用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。我做错了什么。
答案 0 :(得分:2)
使用Parcelable
个对象时,您必须按照您编写的完全相同的顺序阅读Parcel
,否则它将无效。
所以,如果你这样写的话:
dest.writeString("blah");
dest.writeInt(1);
你必须这样读:
str = in.readString();
someInt = in.readInt();
有关this article和this tutorial上的更多信息。
This question和this one此处的SO也会举例说明Parcelable
。