我在实现 Parcelable 时遇到了一些麻烦。我是这样做的:
public class Player implements Parcelable{
String name;
int score;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(score);
}
public Player(Parcel source){
score = source.readInt();
name = source.readString();
}
}
public class MyCreator implements Parcelable.Creator<Player> {
@Override
public Player createFromParcel(Parcel source) {
return new Player(source);
}
@Override
public Player[] newArray(int size) {
return new Player[size];
}
}
这是实现 Parcelable 的全部代码。现在我正在尝试创建一个新的类对象:
Player newPlayer = new Player(null);
newPlayer.name = text;
newPlayer.score = 0;
playersParceledData.add(newPlayer);
zacniIgro.putParcelableArrayListExtra("parceledData", playersParceledData);
这是困扰我的一行:
Player newPlayer = new Player(null);
我刚刚插入“null”的事实好吗?还是我必须在那些()之间插入其他东西?我正在关注这个例子,这没有在里面解释。它说应该像这样创建一个新对象:
Player newPlayer = new Player();
但是我不允许这样做,因为我做了一个构造函数。