Android Parcelable 创建数组

标签 android parcelable

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

最佳答案

它不完整,但我想你会明白这一点。会尽力帮助您。

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

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

关于Android Parcelable 创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13908525/

相关文章:

android - 如何为 android 创建简单的投票应用程序,如热门或不热门

android - ListView 上的按钮我想使用 button.setonclicklistener 和 onListItemClick 我需要做什么

java - 无法通过 Intent 附加传递对象数组

android - 如何从android中的图库中检索图片?

android - 我在这个 Parcelable 类中做错了什么?

java - "Binary XML file line #8: You must supply a layout_width attribute"虽然属性已经存在

android - 如何将雅虎/gmail 联系人导入到 android 应用程序?

android - Realm + Moshi | @JsonClass无法应用于[class],RealmObject不是Kotlin typepublic

java - 如何摆脱为android中的每个类实现Parcelable以便将其用于放置额外的数组列表

android - 尝试使用 Parcelable 传递列表对象时出错