2014-12-07 3 views
0

У меня есть список, я отредактировал адаптер, поэтому последний элемент всегда будет кнопкой с текстом «Загрузить больше». Элементы списка - это некоторые сообщения, которые хранятся на сервере. (В настоящее время используется Parse, но это не имеет значения)android load more items from listview issue

Каждый раз, когда я загружаю элементы в список, я делаю запрос на сервер и получаю 15 сообщений, отсортированных по дате по убыванию. Итак, первый запрос даст мне последние 15 сообщений. Когда я нажму «добавить еще», он выполнит запрос на добавление следующих 15 сообщений, пропустив 15. Если я снова нажму, он выполнит запрос на следующие 15 сообщений, пропустив 30 сообщений и т. Д.

Этот метод работает отлично, если никто не рекламирует новое сообщение при прокрутке. Но если это произойдет, я бы получил некоторые из сообщений, которые у меня уже есть.

Что мне делать, чтобы обрабатывать новые сообщения, используя этот метод? Или есть лучший?

ответ

0

Если вы можете отредактировать код веб-службы, то хорошее руководство для обработки разбиения на страницы можно найти в Twitter devs documentation/Working with Timelines. Это хорошее место для начала.

Если вы не можете, то единственное, что я могу придумать, это проверить сообщения id (если он имеет один или создать локальный идентификатор для каждого из них), перед добавлением сообщений, которые вы передаете своим адаптерам. Если он уже есть, вы пропустите его и перейдете к следующему.

+0

К сожалению, я не могу редактировать свой сервер веб-сервисов, потому что это бесплатный бэкэнд под названием Parse. Проблема со второй идеей заключается в том, что я буду запрашивать сообщения, которые уже есть. Возможно, я сделаю что-то вроде этого +, увеличивая значение пропуска. –