0

I am newbie to android and working on a demo app with two screens to pass a data from one to another activity, During this i am getting below exception,

java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = one.tusk.stush.connect.Post)

code

  Intent intentPostDetail = new Intent(PostListItem.this.getContext(), NewPostDetailActivity.class);
                Post post = mPost;
                System.out.print("========MY POST IS======>" + mPost.toString());
                intentPostDetail.putExtra("Post", post);
                intentPostDetail.putExtra("flag", "post");
            mContext.startActivity(intentPostDetail);

baseObject

public class BaseObject {

    static DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);

    public static Date getDateFromJSONObject(JSONObject jsonObject, String key) {

        String value = "";
        Date date = null;
        try {
            value = jsonObject.getString(key);
            date = dateFormatter.parse(value);
        } catch (Exception e) {
        }
        return date;

    }
    public static String getStringFromJSONObject(JSONObject jsonObject, String key) {

        String value = "";
        try {
            value = jsonObject.getString(key);
        } catch (Exception e) {
        }
        return value;
    }

    public static int getIntFromJSONObject(JSONObject jsonObject, String key) {

        int value = 0;
        try {
            value = jsonObject.getInt(key);
        } catch (Exception e) {
        }
        return value;
    }

    public static boolean getBooleanFromJSONObject(JSONObject jsonObject, String key) {

        boolean value = false;
        try {
            value = jsonObject.getBoolean(key);
        } catch (Exception e) {
        }
        return value;
    }

    public static double getDoubleFromJSONObject(JSONObject jsonObject, String key) {

        double value = 0;
        try {
            value = jsonObject.getDouble(key);
        } catch (Exception e) {
        }
        return value;
    }



    public static JSONObject getJSONFromJSONObject(JSONObject jsonObject, String key) {

        JSONObject value = null;
        try {
            value = jsonObject.getJSONObject(key);
        } catch (Exception e) {
        }
        return value;
    }

Post

public class Post extends BaseObject implements Serializable {

    private static final long serialVersionUID = 1L;
    public String postTitle;
    public String postImagePath;
    public Date postDate;
    public ArrayList<String> postKeywords;
    public User postUser;
    public int postID;
    public int postLikesCount;
    public int postCommentsCount;
    public boolean likedThisPost;
    public boolean commentedThisPost;
    public boolean inAlbum;
    public String timeAgo;
    public int totalReviews;
    public String loginuserReviews;
    int rv_cnt;
    public double ratingcount;
    public JSONObject userObj;
    public int userId;

    String reviews;

    public Post(JSONObject jsonObject) {
        //Log.d("JSOn", jsonObject.toString());
        this.postID = getIntFromJSONObject(jsonObject, "postID");
        this.postImagePath = getStringFromJSONObject(jsonObject, "postImage");
        this.postTitle = getStringFromJSONObject(jsonObject, "postTitle");
        this.postDate = getDateFromJSONObject(jsonObject, "postDate");
        this.postUser = new User(getJSONFromJSONObject(jsonObject, "user"));
        this.postLikesCount = getIntFromJSONObject(jsonObject, "totalLikes");
        this.postCommentsCount = getIntFromJSONObject(jsonObject, "totalComments");
        this.timeAgo = getStringFromJSONObject(jsonObject, "timeAgo");
        this.commentedThisPost = getBooleanFromJSONObject(jsonObject, "isCommented");
//      userObj = getJSONFromJSONObject(jsonObject, "user");
        this.userId = getIntFromJSONObject(jsonObject, "userID");
        this.totalReviews = getIntFromJSONObject(jsonObject, "totalReview");
        this.ratingcount = getDoubleFromJSONObject(jsonObject, "ratingcount");


        int isLiked = getIntFromJSONObject(jsonObject, "isLiked");
        if (isLiked == 1) {
            this.likedThisPost = true;
        } else {
            this.likedThisPost = false;
        }

        int inAlbum = getIntFromJSONObject(jsonObject, "inAlbum");
        if (inAlbum == 1) {
            this.inAlbum = true;
        } else {
            this.inAlbum = false;
        }
    }

}

can anyone please help me to solve this.

sulphuric Acid
  • 585
  • 6
  • 23

2 Answers2

0

Implement Serializable on the Model Class Post . This will fix the error.

   public class Post implements Serializable {
Sanoop Surendran
  • 3,484
  • 4
  • 28
  • 49
0

Make your BaseObject class also implements Serializable like this

public class BaseObject implements Serializable
{
}

If still issue is there then update your question with BaseObject class.

Kumar M
  • 994
  • 6
  • 21
  • Hey,I have posted my baseobject ot my question..Please see,help me pls – sulphuric Acid Jun 16 '16 at 05:48
  • Hello,I found the cause ,when i have added ` public static JSONObject getJSONFromJSONObject(JSONObject jsonObject, String key) { JSONObject value = null; try { value = jsonObject.getJSONObject(key); } catch (Exception e) { } return value; }` in my base object i found this exception, – sulphuric Acid Jun 16 '16 at 06:32