3
回答
Parcelable.Creator
华为云实践训练营,热门技术免费实践!>>>   
 
public static final Parcelable.Creator<Person> CREATOR = new Creator(){  @Override  public Person createFromParcel(Parcel source) { // TODO Auto-generated method stub  // 必须按成员变量声明的顺序读取数据,不然会出现获取数据出错  Person p = new Person();   p.setId(source.readInt());   p.setName(source.readString());  return p;  }  @Override  public Person[] newArray(int size) { // TODO Auto-generated method stub  return new Person[size];  }
};



其中有一个问题是:我用Parcelable.Creator<Person>总是报错不能static,无法在 Inner classes cannot have static declarations 。。。这个另我很困扰。
 
请教一下有没有出现过同样问题的人。。谢谢各位了。。。
举报
ssdy654321
发帖于1年前 3回/110阅
共有3个答案 最后回答: 1年前

首先要实现 Parcelable,其次  describeContents  writeToParcel Creator 都不能少

建议去看看 Parcelable 的实现方式

但是这个我确实实现了 describeContents和writeToParcel Creator啊。。但是还是报错。。。能给予你们写的正常的Percelable给我一下么?

引用来自“ssdy654321”的评论

但是这个我确实实现了 describeContents和writeToParcel Creator啊。。但是还是报错。。。能给予你们写的正常的Percelable给我一下么?
public class CourtInfo implements Parcelable {

    
    public String courtId;

    
    public String courtName;

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.courtId);
        dest.writeString(this.courtName);
    }

    public CourtInfo() {
    }

    protected CourtInfo(Parcel in) {
        this.courtId = in.readString();
        this.courtName = in.readString();
    }

    public static final Creator<CourtInfo> CREATOR = new Creator<CourtInfo>() {
        public CourtInfo createFromParcel(Parcel source) {
            return new CourtInfo(source);
        }

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



顶部