解析arraylist在android中从一个片段到另一个片段
如何将JSON的Arraylist从一个片段解析为另一个片段这里是我的Arraylist代码,我从模型中获取Arraylist:解析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
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使用您的模型列表更新您的问题