android問題集錦之android.os.BadParcelableException: ClassNotFoundException when unmarshalling

來源:互聯網
上載者:User

在上篇文Activity間傳類對象資料中的person類中加入一個List欄位的話,如下

package com.linc.meta;    import android.os.Parcel;  import android.os.Parcelable;    public class Person implements Parcelable {      private String Name = null;      private String Gender = null;      private int HP = 0;      private String Summary = null;      private String Skill = null;      private List<String> skillList = new ArrayList<String>();          public Person(String name,String gender,int HP,String summary,String skill)      {          this.Name = name;          this.Gender = gender;          this.Summary = summary;          this.HP = HP;          this.Skill = skill;      }            public String getName() {          return Name;      }        public void setName(String name) {          Name = name;      }        public String getGender() {          return Gender;      }        public void setGender(String gender) {          Gender = gender;      }        public int getHP() {          return HP;      }        public void setHP(int hP) {          HP = hP;      }        public String getSummary() {          return Summary;      }        public void setSummary(String summary) {          Summary = summary;      }                    public String getSkill() {          return Skill;      }        public void setSkill(String skill) {          Skill = skill;      }      //Describe the kinds of special objects contained in this Parcelable's marshalled representation.      //CONTENTS_FILE_DESCRIPTOR      @Override      public int describeContents() {          // TODO Auto-generated method stub          return 0;      }            //該方法將類的資料寫入外部提供的Parcel中      @Override      public void writeToParcel(Parcel dest, int flags) {          dest.writeString(Name);          dest.writeString(Gender);          dest.writeString(Summary);          dest.writeInt(HP);          dest.writeString(Skill);      }            public static final Parcelable.Creator<Person> CREATOR = new Creator<Person>()      {            @Override          public Person createFromParcel(Parcel source) {              return new Person(source);          }            @Override          public Person[] newArray(int size) {              return new Person[size];          }                };            private Person(Parcel dest)      {          this.Name = dest.readString();          this.Gender = dest.readString();          this.Summary = dest.readString();          this.HP = dest.readInt();          this.Skill = dest.readString();          this.skillList = dest.readArrayList(String.class.getClassLoader());//class loader 必須要指明    }            }  

List中是什麼類型就要把類型的class loader引入,否則就會報上述錯誤。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.