Объект в ArraysList

331
01 августа 2017, 15:50
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());
}
Answer 1
Messages m = (Messages)messages.get(0);
Log.e("title", m.getTitle());
Answer 2

На самом деле проблема у вас в том, что у List в аргументе метода не параметризован, т.е. не указан тип данных в списке. Зисим, они по умолчанию воспринимаются как экземпляры класса Object. Вам надо просто указать тип данных в агрументе метода так List<Messages>:

@Override
public void onSuccess(List<Messages> messages) {
   Log.e("title", messages.get(0).getTitle());
}
READ ALSO
Вывод даных из MySql есть нюанс [дубликат]

Вывод даных из MySql есть нюанс [дубликат]

На данный вопрос уже ответили:

347
Типы ссылок, полный и не полный адрес

Типы ссылок, полный и не полный адрес

Есть ли различия между ссылками

214
Запуск функции JS по нажатию на &lt;button&gt;

Запуск функции JS по нажатию на <button>

Не могу разобраться, как можно сделать так, чтобы таймер запускался по нажатию на кнопку, а не при загрузке страницы? Заранее спасибо

321
В пагинации активная страница по центру

В пагинации активная страница по центру

Как можно в пагинации сделать актуальную страницу по центру? Допустим, если выбрана 4 страница, то она была бы по центру, а 1-3 рядом слева, а 5-7 рядом...

224