1

バックグラウンドでJSONを解析し、このバックグラウンドでJsonをparcelableに送信します。Parcelableでは、writestringArrayListJSONObject.optStringを作成する方法を教えてください。

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 に答える