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());
}
Продвижение своими сайтами как стратегия роста и независимости