JSONArray messages = result.getJSONObject("messages").getJSONArray("list");
List<Messages> messagesArrayList = new ArrayList<>();
for (int i = 0; i < messages.length(); i++){
Messages message = new Messages();
message.setTitle(messages.getJSONObject(i).getString("title"));
message.setDescription(messages.getJSONObject(i).getString("description"));
message.setDate(messages.getJSONObject(i).getString("date"));
message.setType(messages.getJSONObject(i).getString("type"));
messagesArrayList.add(message);
}
callback.onSuccess(messagesArrayList);
Добавляю в массива объекты. но после передачи массива через callback, вызов функций типа getTitle() getDescription() не работают. Якобы их нету вообще.
@Override
public void onSuccess(List messages) {
Log.e("title", messages.get(0).getTitle());
}
Messages m = (Messages)messages.get(0);
Log.e("title", m.getTitle());
На самом деле проблема у вас в том, что у List
в аргументе метода не параметризован, т.е. не указан тип данных в списке. Зисим, они по умолчанию воспринимаются как экземпляры класса Object
. Вам надо просто указать тип данных в агрументе метода так List<Messages>
:
@Override
public void onSuccess(List<Messages> messages) {
Log.e("title", messages.get(0).getTitle());
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу разобраться, как можно сделать так, чтобы таймер запускался по нажатию на кнопку, а не при загрузке страницы? Заранее спасибо
Как можно в пагинации сделать актуальную страницу по центру? Допустим, если выбрана 4 страница, то она была бы по центру, а 1-3 рядом слева, а 5-7 рядом...