Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /includes/session.php on line 1007: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)

Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781

Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781

Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781

Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4362: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4364: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4365: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 4366: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
anddev.org • View topic - Arraylist in parcelable object

Arraylist in parcelable object

Put your problem here if it does not fit any of the other categories.

Arraylist in parcelable object

Postby MightyWezel » Sat Jan 15, 2011 2:50 pm

Hi all

I have seen many parcelable examples so far, but for some reason I can't get it to work when it gets a bit more complex.
I have a Movie object, which implements Parcelable. This book object contains some properties, such as ArrayLists.
Running my app results in a NullPointerException when executing the ReadTypedList.

I would be very grateful if someone could just get me on the right track, I have spend quite a bit of time searching for this one !

Thanks in adnvance
Wesley

My Movie object:
Code: Select all
public class Movie implements Parcelable{
   private int id;
   private List<Review> reviews
   private List<String> authors;
   
   public Movie () {
      reviews = new ArrayList<Review>();
      authors = new ArrayList<String>();
   }
   
   public Movie (Parcel in) {
      readFromParcel(in);
   }
   
   /* getters and setters excluded from code here */

   public void writeToParcel(Parcel dest, int flags) {
      
      dest.writeInt(id);
      dest.writeList(reviews);
      dest.writeStringList(authors);
   }
   
   public static final Parcelable.Creator<Movie> CREATOR = new Parcelable.Creator<Movie>() {

      public MoviecreateFromParcel(Parcel source) {
         return new Movie(source);
      }

      public Movie[] newArray(int size) {
         return new Movie[size];
      }
      
   };
   
   /*
    * Constructor calls read to create object
    */
   private void readFromParcel(Parcel in) {
      this.id = in.readInt();
      in.readTypedList(reviews, Review.CREATOR); /* NULLPOINTER HERE */
      in.readStringList(authors);
   }
}



As for my Review class:

Code: Select all
public class Review implements Parcelable {
   private int id;
   private String content;
   
   public Review() {
      
   }
   
   public Review(Parcel in) {
      readFromParcel(in);
   }
   
   public void writeToParcel(Parcel dest, int flags) {
      dest.writeInt(id);
      dest.writeString(content);
   }
   
   public static final Creator<Review> CREATOR = new Creator<Review>() {

      public Review createFromParcel(Parcel source) {
         return new Review(source);
      }

      public Review[] newArray(int size) {
         return new Review[size];
      }
   };
   
   private void readFromParcel(Parcel in) {
      this.id = in.readInt();
      this.content = in.readString();
   }
   
}
MightyWezel
Freshman
Freshman
 
Posts: 2
Joined: Sat Jan 15, 2011 2:34 pm

Top

Re: Arraylist in parcelable object

Postby MightyWezel » Sun Jan 16, 2011 11:52 am

I have found the answer on another forum. For people in need of the answer:


reviews and authors are both null. You should first initialize the ArrayList. One way to do this is chain the constructor:

Code: Select all
public Movie (Parcel in) {
   this();
   readFromParcel(in);
}
MightyWezel
Freshman
Freshman
 
Posts: 2
Joined: Sat Jan 15, 2011 2:34 pm

Top

Return to Other Coding-Problems

Who is online

Users browsing this forum: Exabot [Bot], Google [Bot], Yahoo [Bot] and 13 guests