Android中的parcelable如何知道在其构造函数中读取哪个变量?

时间:2015-04-29 01:22:30

标签: android parcelable

您可以从下面的代码中看到,parcel不会读取任何键来返回值。他们如何知道阅读内容并将其放入变量someString1someString2等等?

public SomeObject(Parcel in) {

   this.someString1 = in.readString();
   this.someString2 = in.readString();
   this.someInt = in.readInt();
   this.someString3 = in.readString();
   this.someInt2 = in.readInt();

}

如果我这样说的话怎么办?下面的代码会变成错误,因为我改变顺序来读它吗?

public SomeObject(Parcel in) {

this.someString3 = in.readString();
this.someInt2 = in.readInt();
this.someString1 = in.readString();
this.someString2 = in.readString();
this.someInt = in.readInt();

}

1 个答案:

答案 0 :(得分:2)

是的,更改订单肯定会导致问题。值是按顺序写入的,因此无论您在writeToParcel()中编写字段的顺序如何,当您从Parcel读取时,必须以相同的顺序读回它们。