【问题标题】:ArrayList cannot be set to model classArrayList 不能设置为模型类
【发布时间】:2018-05-03 07:19:26
【问题描述】:

我是 android 新手。我有一个包含图像和其他属性的 JSONArray。我正在尝试将其设置到模型类中。

MenuContent singleItem = new MenuContent();
singleItem.setContent(mContentJsonObject.getString(AppConstants.APIKeys.CONTENT));
singleItem.setContentId(mContentJsonObject.getString(AppConstants.APIKeys.PARAGRAPH_ID));
singleItem.setChapterId(mContentJsonObject.getString(AppConstants.APIKeys.CHAPTER_ID));
singleItem.setClassId(getSharedPreference(AppConstants.APIKeys.CLASS_ID));
singleItem.setLanguageId(getSharedPreference(AppConstants.APIKeys.LANGUAGE_ID));
JSONArray mGalleryimages = mContentJsonObject.getJSONArray(AppConstants.APIKeys.PARAGRAPH_GALLERY_IMAGES);
for (int k = 0; k < mGalleryimages.length(); k++) {
    JSONObject mGallerycontent=mGalleryimages.getJSONObject(k);
    ImageGallery imageGallery = new ImageGallery();
    imageGallery.setImageId(String.valueOf(k));
    imageGallery.setImagePath(mGallerycontent.getString(AppConstants.APIKeys.PARAGRAPH_GALLERY_CONTENT));
    array_image.add(imageGallery);

}
singleItem.setImageGallery(array_image);
singleItem.save();
mParagraphsList.add(singleItem);

问题是我可以将除galleryimages数组之外的所有属性设置为模型类。但是setImageGallery only不起作用。调试它时我在那里得到null。这是MenuContent模型类sn-p

ArrayList <ImageGallery> imageGallery;
public ArrayList<ImageGallery> getImageGallery() {
    return imageGallery;
}

public void setImageGallery(ArrayList<ImageGallery> imageGallery) {
    this.imageGallery = imageGallery;
}

ImageGallery模型类sn-p

public void setImagePath(String imagePath) {
    this.imagePath = imagePath;
}
public String getImagePath() {
    return imagePath;
}

谁能告诉我有什么问题?任何帮助表示赞赏。

【问题讨论】:

  • 什么是array_image
  • ArrayList array_image;
  • 你在哪里初始化了array_image?
  • @user9733846 可以与问题分享确切的错误
  • @Jack 以上 for (int k = 0; k

标签: android json getter-setter


【解决方案1】:

这段代码可以用众所周知的Google Gson Library转换成2行

看看这个。

Type listType = new TypeToken<List<MenuContent>>() {}.getType();
List<MenuContent> yourList = new Gson().fromJson(yourJson, listType);

您不必编写长代码并使用键进行解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2018-12-03
    相关资源
    最近更新 更多