android - 将arraylist从一个片段解析到android中的另一个片段
问题描述
我如何将 JSON 的 Arraylist 从一个 Fragment 解析到另一个 Fragment 这是我的 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();
}
}
}
在这里,我从片段发送数据:
private ArrayList<ListOffers> deals = new ArrayList<>();
Fragment fragment = new HotDealFragment();
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("dealsId", deals);
fragment.setArguments(bundle);
当我输入此代码时,交易会给出错误的第二个参数的异常,并且ListOffers
是我正在获取数据的模型
这是我的模型列表提供:
private int Id;
public ListOffers(int Id){
this.Id = Id;
}
public void setId(int id) {
Id = id;
}
public int getId() {
return Id;
}
解决方案
一个可能的问题:
您的 ListOffers 模型没有实现 parcelable。你的模型应该实现 parcelable。您可以从此链接获得帮助
https://github.com/codepath/android_guides/wiki/Using-Parcelable
import android.os.Parcel;
import android.os.Parcelable;
public class ListOffers implements Parcelable {
private int Id;
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 dest, int flags) {
dest.writeInt(Id);
}
protected ListOffers(Parcel in) {
Id = in.readInt();
}
public static final Creator<ListOffers> CREATOR = new Creator<ListOffers>() {
@Override
public ListOffers createFromParcel(Parcel in) {
return new ListOffers(in);
}
@Override
public ListOffers[] newArray(int size) {
return new ListOffers[size];
}
};
}
推荐阅读
- python - 将两个列表理解合二为一?
- mongodb - MongoDB:计算所有文档中的第 90 个百分位
- angular - 我的应用程序没有在 Internet Explorer 和 Edge 中路由
- python-3.x - Docker 中的 python 脚本需要访问不同 Docker 映像中存在的 API 数据
- java - 从命令行运行 .jar 时出现 NetBeans 8.2 中指定的命令行参数
- c# - 时间间隔重叠但在第二天
- java - 正确答案按钮绿色
- python - 在调用另一个类函数的类函数中返回一个值
- android - 应用程序崩溃,但堆栈跟踪中没有应用程序特定代码
- php - httpd.conf 上的用户/组的 Apache 问题 - 权限