1

In background i parse JSON, and then in this background i send Json to parcelable And in Parcelable i writestring with JSONObject.optString how i can write ArrayList?

List<Row> result = new ArrayList<Row>(array.length());
                for (int i = 0; i < array.length(); i++) {
                    result.add(new Row(array.optJSONObject(i)));
                }

Parcelable.java

public Row(JSONObject from) {
        thumb = from.optString(TAG_THUMBNAILS);
        bigImage = from.optString(TAG_BIG_IMAGE);
        author = from.optString(TAG_AUTHOR);
        description = from.optString(TAG_DESCRIPTION);
        date = from.optString(TAG_DATE);
    }

    public Row(Parcel parcel) {
        thumb = parcel.readString();
        bigImage = parcel.readString();
        author = parcel.readString();
        description = parcel.readString();
        date = parcel.readString();
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeString(thumb);
        parcel.writeString(bigImage);
        parcel.writeString(author);
        parcel.writeString(description);
        parcel.writeString(date);
    }
Ozik Abdullaev
  • 1,026
  • 1
  • 9
  • 26
  • chek this,[ArrayList with Parcelable](http://stackoverflow.com/questions/7400564/android-parcelable-retailerorderactivity-java-return-null/7400675#7400675) – RobinHood Dec 17 '12 at 05:19

1 Answers1

1

It is not complete but I think you will get the point. Will try to assist you.

public class Row implements Parceleable{

    private String thumb;
    private String bigImage;
   private String author;
    private String description;
    private String date;

// your setters and getters here
    public void setThumb(String thumb){
        this.thumb = thumb;
    }
    public String getThumb(){
        return thumb;
    }
// ....

    public Row(){
     } 

    public Row(Parcel parcel) {
        thumb = parcel.readString();
        bigImage = parcel.readString();
        author = parcel.readString();
        description = parcel.readString();
        date = parcel.readString();
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeString(thumb);
        parcel.writeString(bigImage);
        parcel.writeString(author);
        parcel.writeString(description);
        parcel.writeString(date);
    }

     public static final Parcelable.Creator<Row> CREATOR = new Parcelable.Creator<MyParcelable>() {

    @Override
    public Row createFromParcel(Parcel in) {
        return new Row(in);
    }

    @Override
    public Row[] newArray(int size) {
        return new Row[size];
    }
  };
}

Populate from your json:

List<Row> myRowArray = new ArrayList<Row>;

Row result;
           for (int i = 0; i < array.length(); i++) {
                result = new Row();
                result.setThumb( fromJson ); //Set thumb string you got from json
                result.setAuthor( fromJson ); //Set Author string you got from json
                 .....
                 myRowArray.add(result);
            }

That's how we do it.It is very easy. At the beginning it is little confusing but if you learn the point you will find out it is easy and very handy.

Lazy Ninja
  • 22,342
  • 9
  • 83
  • 103