Я новичок в 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;
}
Может ли кто-нибудь сказать мне, в чем проблема? Любая помощь приветствуется.
ArrayList <ImageGallery> array_image;
Где вы инициализировали array_image?
@ user9733846 может поделиться точной ошибкой с вопросом
Вы инициализировали? array_image = новый ArrayList <ImageGallery> ();
да, я инициализировал
@Nilesh Rathod Я пытаюсь получить содержимое массива в recyclerview adpter.AppConstants.mMenuContentGallery = mParagraphsList.get ( position-1); Но только галерея изображений имеет значение null.
@Jack над этим for (int k = 0; k <mGalleryimages.length (); k ++)
Этот код можно преобразовать в 2 строки с хорошо известным Библиотека Google Gson
Взгляните на это.
Type listType = new TypeToken<List<MenuContent>>() {}.getType();
List<MenuContent> yourList = new Gson().fromJson(yourJson, listType);
Необязательно писать длинный код с парсингом с ключами.
что такое
array_image