ArrayList не может быть установлен для класса модели

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

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

что такое array_image

AskNilesh 03.05.2018 09:21

ArrayList <ImageGallery> array_image;

anju jo 03.05.2018 09:23

Где вы инициализировали array_image?

Jack 03.05.2018 09:23

@ user9733846 может поделиться точной ошибкой с вопросом

AskNilesh 03.05.2018 09:24

Вы инициализировали? array_image = новый ArrayList <ImageGallery> ();

Jack 03.05.2018 09:25

да, я инициализировал

anju jo 03.05.2018 09:28

@Nilesh Rathod Я пытаюсь получить содержимое массива в recyclerview adpter.AppConstants.mMenuContentGallery = mParagraphsList.get (‌ position-1); Но только галерея изображений имеет значение null.

anju jo 03.05.2018 09:30

@Jack над этим for (int k = 0; k <mGalleryimages.length (); k ++)

anju jo 03.05.2018 09:39
2
8
72
1

Ответы 1

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

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

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

Необязательно писать длинный код с парсингом с ключами.

Другие вопросы по теме