解析arraylist在android中从一个片段到另一个片段

解析arraylist在android中从一个片段到另一个片段,android,android-fragments,arraylist,Android,Android Fragments,Arraylist,如何将JSON的Arraylist从一个片段解析为另一个片段这里是我的Arraylist代码,我从模型中获取Arraylist: private void setListOffers(JSONArray categoryArray) { for (int i = 0; i < categoryArray.length(); i++) { try { JSONObject object = categoryArray.getJSONObject

如何将JSON的Arraylist从一个片段解析为另一个片段这里是我的Arraylist代码,我从模型中获取Arraylist:

private void setListOffers(JSONArray categoryArray) {
    for (int i = 0; i < categoryArray.length(); i++) {
        try {
            JSONObject object = categoryArray.getJSONObject(i);
            hotDealID = object.getInt("ID");
            deals.add(new ListOffers(hotDealID));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
一个可能的问题:

您的ListOffers模型未实现parcelable。您的模型应该实现parcelable。您可以通过此链接获得帮助

导入android.os.packet;
导入android.os.Parcelable;
公共类ListProvers提供了可打包的{
私有int-Id;
公共列表提供(int Id){
这个.Id=Id;
}
公共无效集合id(内部id){
Id=Id;
}
公共int getId(){
返回Id;
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地写入(Id);
}
受保护的ListOffers(包裹中){
Id=in.readInt();
}
公共静态最终创建者=新创建者(){
@凌驾
公共列表提供createFromParcel(中的地块){
返回新的ListOffers(在中);
}
@凌驾
公共列表提供[]新数组(整数大小){
返回新的ListOffers[大小];
}
};
}
一个可能的问题:

您的ListOffers模型未实现parcelable。您的模型应该实现parcelable。您可以通过此链接获得帮助

导入android.os.packet;
导入android.os.Parcelable;
公共类ListProvers提供了可打包的{
私有int-Id;
公共列表提供(int Id){
这个.Id=Id;
}
公共无效集合id(内部id){
Id=Id;
}
公共int getId(){
返回Id;
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地写入(Id);
}
受保护的ListOffers(包裹中){
Id=in.readInt();
}
公共静态最终创建者=新创建者(){
@凌驾
公共列表提供createFromParcel(中的地块){
返回新的ListOffers(在中);
}
@凌驾
公共列表提供[]新数组(整数大小){
返回新的ListOffers[大小];
}
};
}

您的datamodel ListOffers应该实现Parcelable,然后只有您可以作为ParcelableArrayList传递

提及


您的datamodel ListOffers应该实现Parcelable,然后只有您可以作为ParcelableArrayList传递

提及


使用hashmap,您可以传递

HashMap <String,ArrayList<ListOffers>> hashMap;
Bundle extras = new Bundle();
extras.putSerializable("HashMap",hashMap);
intent.putExtras(extras);
Intent intent = getIntent();    
hasMap= intent.getSerializableExtra("hashMap");

使用hashmap可以传递

HashMap <String,ArrayList<ListOffers>> hashMap;
Bundle extras = new Bundle();
extras.putSerializable("HashMap",hashMap);
intent.putExtras(extras);
Intent intent = getIntent();    
hasMap= intent.getSerializableExtra("hashMap");
使用您的模型将非常有用

public class ListOffers implements Parcelable {

    private int Id;

    /**
     * Constructs a Model from a Parcel
     *
     * @param parcel Source Parcel
     */
    public ListOffers(Parcel parcel) {
        this.Id = parcel.readInt();
    }

    public ListOffers(int Id) {
        this.Id = Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public int getId() {
        return Id;
    }

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeInt(Id);
    }

    // Method to recreate a Model from a Parcel
    public static Creator<ListOffers> CREATOR = new Creator<ListOffers>() {

        @Override
        public ListOffers createFromParcel(Parcel source) {
            return new ListOffers(source);
        }

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

    };
}
将其提取到它的onCreate中的其他
片段中
-

ArrayList<ListOffers> deals = new ArrayList<>();
if (getArguments() != null) {
    deals = getArguments().getParcelableArrayList("dealsId");
}
ArrayList deals=new ArrayList();
如果(getArguments()!=null){
deals=getArguments().getParcelableArrayList(“dealsId”);
}
希望这将帮助您:)

使用您的模型将

public class ListOffers implements Parcelable {

    private int Id;

    /**
     * Constructs a Model from a Parcel
     *
     * @param parcel Source Parcel
     */
    public ListOffers(Parcel parcel) {
        this.Id = parcel.readInt();
    }

    public ListOffers(int Id) {
        this.Id = Id;
    }

    public void setId(int id) {
        Id = id;
    }

    public int getId() {
        return Id;
    }

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeInt(Id);
    }

    // Method to recreate a Model from a Parcel
    public static Creator<ListOffers> CREATOR = new Creator<ListOffers>() {

        @Override
        public ListOffers createFromParcel(Parcel source) {
            return new ListOffers(source);
        }

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

    };
}
将其提取到它的onCreate中的其他
片段中
-

ArrayList<ListOffers> deals = new ArrayList<>();
if (getArguments() != null) {
    deals = getArguments().getParcelableArrayList("dealsId");
}
ArrayList deals=new ArrayList();
如果(getArguments()!=null){
deals=getArguments().getParcelableArrayList(“dealsId”);
}

希望这能帮助您:)

这里有一个更简单的方法

大多数情况下,希望发送此数据是因为他们希望在新类中访问此数据的时间很短。不要每次都发送数据,而是转到包含数据的片段并使其公开和静态

public static ArrayList<ListOffers> deals;

这里有一个更简单的方法

大多数情况下,希望发送此数据是因为他们希望在新类中访问此数据的时间很短。不要每次都发送数据,而是转到包含数据的片段并使其公开和静态

public static ArrayList<ListOffers> deals;

使ListOffer实现可序列化,然后使用

private ArrayList<ListOffers> deals = new ArrayList<>();
Fragment fragment = new HotDealFragment();
    Bundle  bundle = new Bundle();
    bundle.putSerializable("dealsId", deals);
    fragment.setArguments(bundle);

使ListOffer实现可序列化,然后使用

private ArrayList<ListOffers> deals = new ArrayList<>();
Fragment fragment = new HotDealFragment();
    Bundle  bundle = new Bundle();
    bundle.putSerializable("dealsId", deals);
    fragment.setArguments(bundle);

您是否为ListOffers类实现了Parcelable?不,我没有在ListOffers类中实现itSo Parcelable,您不会得到异常。您是否为ListOffers类实现了Parcelable?不,我没有在ListOffers类中实现itSo Parcelable,您不会得到异常。我的模型是:publicListOffers(int-Id){this.Id=Id;}public void setId(int-Id){Id=Id;}public int-getId(){return-Id;}@ansarabbas使用您的模型代码更新您的问题。我还将我的模型填充到arraylist交易中。设置我的更新question@ansarabbas用模型ListOffers更新您的问题我的模型是:public ListOffers(int-Id){this.Id=Id;}public void setId(int-Id){Id=Id;}public int-getId(){return Id;}@ansarabbas使用您的模型代码更新您的问题。我还将我的模型填充到arraylist交易中。设置我的更新question@ansarabbas使用您的模型列表更新您的问题