Android的Parcelable创建数组 [英] Android Parcelable create array

查看:264
本文介绍了Android的Parcelable创建数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在后台我解析JSON,然后在此背景下我JSON发送到parcelable
而在Parcelable我 writestring JSONObject.optString 我怎么能写的ArrayList <?/ p>

 列表&LT;行&GT;结果=新的ArrayList&LT;行&GT;(array.length());
                的for(int i = 0; I&LT; array.length();我++){
                    result.add(新行(array.optJSONObject(I)));
                }

Parcelable.java

 公共行(JSONObject的距离){
        拇指= from.optString(TAG_THUMBNAILS);
        bigImage = from.optString(TAG_BIG_IMAGE);
        笔者= from.optString(TAG_AUTHOR);
        说明= from.optString(TAG_DESCRIPTION);
        日期= from.optString(TAG_DATE);
    }    公共行(邮包包裹){
        拇指= parcel.readString();
        bigImage = parcel.readString();
        笔者= parcel.readString();
        说明= parcel.readString();
        日期= parcel.readString();
    }    @覆盖
    公众诠释describeContents(){
        返回0;
    }    @覆盖
    公共无效writeToParcel(包裹包裹,诠释标志){
        parcel.writeString(大拇指);
        parcel.writeString(bigImage);
        parcel.writeString(作者);
        parcel.writeString(介绍);
        parcel.writeString(日期);
    }


解决方案

这是不完整的,但我认为你会得到点。会尽力帮助你。

 公共类行实现Parceleable {    私人字符串大拇指;
    私人字符串bigImage;
   私人字符串作者;
    私人字符串描述;
    私人字符串日期;//你的setter和getter方法​​在这里
    公共无效setThumb(字符串拇指){
        this.thumb =大拇指;
    }
    公共字符串getThumb(){
        返回大拇指;
    }
// ....    公共行(){
     }    公共行(邮包包裹){
        拇指= parcel.readString();
        bigImage = parcel.readString();
        笔者= parcel.readString();
        说明= parcel.readString();
        日期= parcel.readString();
    }    @覆盖
    公众诠释describeContents(){
        返回0;
    }    @覆盖
    公共无效writeToParcel(包裹包裹,诠释标志){
        parcel.writeString(大拇指);
        parcel.writeString(bigImage);
        parcel.writeString(作者);
        parcel.writeString(介绍);
        parcel.writeString(日期);
    }     公共静态最终Parcelable.Creator&LT;行&GT; CREATOR =新Parcelable.Creator&LT; MyParcelable&GT;(){    @覆盖
    公共行createFromParcel(包裹中){
        返回新行();
    }    @覆盖
    公共行[] newArray(INT大小){
        返回新行[大小]
    }
  };
}

从JSON填充:

 列表&LT;行&GT; myRowArray =新的ArrayList&LT;行取代;行结果;
           的for(int i = 0; I&LT; array.length();我++){
                结果=新行();
                result.setThumb(fromJson);您从JSON了//设置字符串拇指
                result.setAuthor(fromJson);您从JSON了//设置字符串作者
                 .....
                 myRowArray.add(结果);
            }

这就是我们如何做it.It是很容易的。在开始的时候是有点混乱,但如果你学会了一点,你会发现它很容易和非常方便的。

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

解决方案

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.

这篇关于Android的Parcelable创建数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆