ArrayList ne peut pas être casté en Parcelable

J'obtiens les Erreurs suivantes:

  • Com clés..BookStatus devrait Parcelable mais la valeur est une liste de tableaux
  • ClassCastException: ArrayList ne peut pas être lancé à Parcelable
    -> et appropriés par la suite: Impossible de démarrer l'Activité - NullPointerException
  • la liste de tableaux ont des valeurs de BookStatus Objets (listToPass)
    • Com clés.exemple.de livres.BookStatus devrait Parcelable mais la valeur a été une java.util.Liste de tableaux. La valeur par défaut a été renvoyé
    • Tentative de le jeter générés en interne exception:
    • java.lang.ClassCastException: java.util.Liste de tableaux ne peuvent pas être exprimées pour android.os.Parcelable
    • au com.exemple.books4locals.SearchActivity.onCreate(SearchActivity.java:46) -> qui est le bundle.getparcelable méthode

Que puis-je faire?

HomeActivity.java

    ArrayList<BookStatus> listToPass = new ArrayList<BookStatus>(); //fill with smthg

        protected void onPostExecute(String result) {

            if (listToPass != null) {

                Intent i = new Intent(getApplicationContext(),
                        SearchActivity.class);
                //             ArrayList<BookStatus> bs = new ArrayList<BookStatus> (Arrays.asList(bArr));

                i.putParcelableArrayListExtra("com.example.books.BookStatus", listToPass);
                startActivity(i);

SearchActivity.java

          protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.searchactivity_main);

            Bundle bundle = getIntent().getExtras();
            ArrayList<BookStatus> bookStatus = bundle
                    .getParcelable("com.example.books.BookStatus");

BookStatus.java

         public class BookStatus implements Parcelable {
public BookStatus() {
}
public BookStatus(Parcel in) {
this.bookId=in.readInt();
this.address=in.readString();
this.name=in.readString();
this.author=in.readString();
this.lenderUserId=in.readInt();
this.isbn=in.readInt();
this.postcode=in.readString();
this.town=in.readString();
this.telnumber=in.readString();
this.mail=in.readString();
this.duration=in.readInt();
}
@Override
public int describeContents() {
//TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.bookId);
dest.writeString(this.address);
dest.writeString(this.name);
dest.writeString(this.author);
dest.writeInt(this.lenderUserId);
dest.writeInt(this.isbn);
dest.writeString(this.postcode);
dest.writeString(this.town);
dest.writeString(this.telnumber);
dest.writeString(this.mail);
dest.writeInt(this.duration);
}
public void readFromParcel(Parcel parcel){
this.bookId = parcel.readInt();
this.address = parcel.readString();
this.name = parcel.readString();
this.author = parcel.readString();
this.lenderUserId = parcel.readInt();
this.isbn = parcel.readInt();
this.postcode = parcel.readString();
this.town = parcel.readString();
this.telnumber = parcel.readString();
this.mail = parcel.readString();
this.duration = parcel.readInt();
}
public static final Parcelable.Creator<BookStatus> CREATOR = new Parcelable.Creator<BookStatus>() {
public BookStatus createFromParcel(Parcel in) {
return new BookStatus(in);
}
public BookStatus[] newArray(int size) {
return new BookStatus[size];
}
};

source d'informationauteur flyOWX