 <p>There is mistake in the Parcelable implementation.</p> <p>First of all parcelable implementation states that: <strong>the fields passed in News(Parcel in) Constructor should be written in the same sequence in writeToParcel() method. Thats called Marshalling and Unmarshalling.</strong></p> <p><strong>Corrections:</strong></p> <ol> <li><p>Drawable cannot be passed a parameter in Parcelable.</p></li> <li><p>News Parcelable implementation.</p></li> </ol> <p>Missed some of the fields its just for your understanding.</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; protected News(Parcel in) { id = in.readInt(); type = in.readString(); title = in.readString(); category_name = in.readString(); url = in.readString(); } 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 int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(id); dest.writeString(type); dest.writeString(title); dest.writeString(category_name); dest.writeString(url); } } 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; 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>