title: readParcelable returns null
body: <p>I try to pass a <code>News</code> class to an activity, so I implemented the <code>Parcelable</code> interface. Inside <code>News</code> I have two classes implementing <code>Parcelable</code> too, <code>Image</code> and <code>Date</code></p>
  
  <p>The matter is that my <code>News</code> object at the end contains <code>null</code> for fields <code>image</code> and <code>date</code>.</p>
  
  <p>Here my code: </p>
  
  <p><strong>News.java</strong></p>
  
  <pre><code>public class News implements Parcelable {
  public static final String TAG = "model_news";
  
  private JSONObject object;
  
  private int id;
  private String type;
  private String title;
  private Boolean comment_disabled;
  private String category_name;
  private String url;
  private Image images;
  private Date date;
  private Boolean is_video;
  
  public News(JSONObject object) {
      this.object = object;
  
      try {
          id = Integer.parseInt(object.getString("id"));
          type = object.getString("type");
          title = object.getString("title");
          comment_disabled = object.getBoolean("comment_disabled");
          category_name = object.getString("category_name");
          url = object.getString("url");
  
          if (!object.isNull("images")) {
              images = new Image(object.getJSONObject("images"));
          }
  
          date = new Date(object.getJSONObject("date"));
  
          is_video = object.getBoolean("is_video");
  
      } catch (JSONException e) {
          Log.e(TAG, e.getMessage());
      }
  
  }
  
  protected News(Parcel in) {
      id = in.readInt();
      type = in.readString();
      title = in.readString();
      category_name = in.readString();
      url = in.readString();
      images =  (Image) in.readParcelable(Image.class.getClassLoader());
      date = (Date) in.readParcelable(Date.class.getClassLoader());
      is_video = in.readByte() != 0;
      comment_disabled = in.readByte() != 0;
  }
  
  public static final Creator&lt;News&gt; CREATOR = new Creator&lt;News&gt;() {
      @Override
      public News createFromParcel(Parcel in) {
          return new News(in);
      }
  
      @Override
      public News[] newArray(int size) {
          return new News[size];
      }
  };
  
  @Override
  public void writeToParcel(Parcel dest, int flags) {
      dest.writeInt(id);
      dest.writeString(type);
      dest.writeString(title);
      dest.writeByte((byte) (comment_disabled ? 1 : 0));
      dest.writeString(category_name);
      dest.writeString(url);
      dest.writeParcelable(images, flags);
      dest.writeParcelable(date, flags);
      dest.writeByte((byte) (is_video ? 1 : 0));
  }
  
  @Override
  public int describeContents() {
      return 0;
  }
  </code></pre>
  
  <p>}</p>
  
  <p><strong>Image.java</strong></p>
  
  <pre><code>public class Image implements Parcelable {
  public static final String TAG = "model_image";
  
  private JSONObject imageObj;
  private JSONObject original;
  
  private String source;
  private int width;
  private Drawable image;
  
  public Image(JSONObject imageObj) {
      this.imageObj = imageObj;
  
      try {
          original = this.imageObj.getJSONObject("original");
          source = original.getString("src");
          width = original.getInt("width");
      } catch (JSONException e) {
          e.getMessage();
      }
  }
  
  protected Image(Parcel in) {
      source = in.readString();
      width = in.readInt();
  }
  
  public static final Creator&lt;Image&gt; CREATOR = new Creator&lt;Image&gt;() {
      @Override
      public Image createFromParcel(Parcel in) {
          return new Image(in);
      }
  
      @Override
      public Image[] newArray(int size) {
          return new Image[size];
      }
  };
  
  @Override
  public int describeContents() {
      return 0;
  }
  
  @Override
  public void writeToParcel(Parcel dest, int flags) {
      dest.writeString(source);
      dest.writeInt(width);
  }
  </code></pre>
  
  <p>}</p>
  
  <p>what I'm doing wrong ? </p>