У меня есть адаптер recycler, измененный для настройки курсоров, и я успешно возвращаю результаты в recyclerview через загрузчик и т. Д. Я пытаюсь отобразить расчет разницы между текущая запись (отображается в окне просмотра) и предыдущая запись (могут отображаться или не отображаться в пользовательском интерфейсе на основе позиции).вычислить значение на основе текущей и предыдущей строки в курсоре android
В запросе, который в настоящее время заполняет адаптер, отображаются суммы транзакций по месяцам.
Пример. Если пользователь выбирает сортировку по месяцам, они получат следующее. (Они также могут сортировать потратив сумму.)
month | spending
--------+----------
12/2014 | 123
--------|----------
11/2014 | 145
--------|----------
10/2014 | 130
Что является лучшей практикой для отображения следующего как прокрутке через recyclerviews. Я хотел бы, чтобы пользователь мог выбрать тип сортировки и на основе результатов найти отличие от предыдущей записи.
month | spending | difference
--------+-----------+------------
12/2014 | 123 | + 22
--------|-----------+------------
11/2014 | 145 | + 15
--------|-----------+------------
10/2014 | 130 | null
Причина я хочу использовать курсор, потому что я только хочу, чтобы загрузить результаты на основе позиции курсора. Есть ли способ, я могу переписать запрос, чтобы я мог получить результаты, которые я хочу, не делая вычисления, когда данные представлены в адаптере?
Вариант, который в настоящее время работает для меня, но я не хочу использовать:
Я получил результаты, я хочу с помощью использования списка массивов и делать расчеты при создании списка массива но я боюсь, поскольку пользователь вводит больше данных (ive проверено на 1000 фиктивных записей), в конечном итоге пользователю придется ждать, пока список будет создан и загружен в UI каждый раз, когда набор данных изменится.
Пожалуйста, помогите мне разобраться в лучшей практике, когда дело доходит до этих сценариев.
, если вы не хотите, чтобы рассчитать все это в одно время (время загрузки), то, возможно, вы можете использовать собственный адаптер для заполнения списка, то вы можете рассчитать diff, используя элемент в запрошенной позиции и позиции-1 (если есть) в 'getView()' – Yazan
, но в вашем случае это позиция и позиция + 1 [diff рядом с 12/2014 isgoingOf (11/2014) -приложениеОф (12/2014)], правильно? – Yazan
Я забыл упомянуть, что я использую адаптер recycler, измененный для использования курсора.Да, вы правы в своем предположении, но это должно быть позиция + 1, если пользователь прокручивает вверх и позицию - 1, если пользователь прокручивается вниз, потому что просмотры сверху возвращаются, поскольку они ушли из пользовательского интерфейса. Из-за этого я думаю, что должен быть лучший способ. Например, переписывание запроса для обеспечения желаемого результата, поэтому мне не нужно выполнять вычисления в адаптере, поскольку представления возвращаются. – patelb