ArrayList не может быть установлен для класса модели - PullRequest
0 голосов
/ 03 мая 2018

Я новичок в 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 только не работает. Я получаю нулевое значение при отладке. Это фрагмент модели MenuContent

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

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

ImageGallery фрагмент класса модели

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

Может кто-нибудь сказать мне, в чем проблема? Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 мая 2018

Этот код можно преобразовать в 2 строки с хорошо известной Google Gson Library

Взгляните на это.

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

Вам не нужно писать длинный код при разборе с ключами.

...