1

在后台我解析 JSON,然后在这个后台我将 Json 发送到 Parcelable 而在 Parcelable 中我writestring如何JSONObject.optString编写 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);
    }
4

1 回答 1

1

它不完整,但我想你会明白的。会尽力帮助你。

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];
    }
  };
}

从您的 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);
            }

我们就是这样做的。这很容易。一开始它有点令人困惑,但如果你学会了这一点,你会发现它很容易而且非常方便。

于 2012-12-17T09:28:15.173 回答