Адаптер, дублирующий просмотр Recycler

Привет, я новичок в программировании, и моя проблема заключается в том, когда я переключаю вкладки на мою навигацию. Мои данные дублируются при повторной загрузке.

httpClient.get(url, object : JsonHttpResponseHandler() { override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { for (i in 0 until response.length()) { val seminar = Seminar.fromJson(response.getJSONObject(i)) seminarsAdapter.add(SeminarItem(seminar)) } } override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { Log.d("Seminars Fragment", throwable?.localizedMessage) } }) 

Вы можете очистить список перед добавлением новых элементов, но в случае, если вы захотите добавить их по одному или что-то еще из логики в будущем, я предлагаю вам добавить DiffUtil внутри Adapter для управления содержимым вашего Adapter

DiffUtil – это класс утилиты, который может вычислять разницу между двумя списками и выводить список операций обновления, который преобразует первый список во второй. Он может использоваться для расчета обновлений для адаптера RecyclerView.

Посмотрите на этот пост, в котором объясняется, как реализовать его вместе с Adapter и RecyclerView

Если у seminarsAdapter уже есть некоторые данные, вы добавите к существующему набору данных.

Возможно, добавьте clear метод для своих seminarsAdapter типа и вызовите его раньше в onSuccess(...) .

 httpClient.get(url, object : JsonHttpResponseHandler() { override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { if(seminarsAdapter.size()>0){ seminarsAdapter.clear(); } for (i in 0 until response.length()) { val seminar = Seminar.fromJson(response.getJSONObject(i)) seminarsAdapter.add(SeminarItem(seminar)) } } override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { Log.d("Seminars Fragment", throwable?.localizedMessage) } }) 

clear семинарыАдаптивный список в ответе вызова api, чтобы данные не повторялись. попробуйте код выше

Intereting Posts
Отправка предварительно рассчитанного результата от одной активности Kotlin в текстовое представление в другом Можете ли вы иметь общий основной конструктор в Котлин? Получать размер процентного содержания Guideline в пикселях Создание исполняемой толстой баночки с град-скрипт-котлин Каково намеренное использование @JvmSynthetic в Котлине? Типовая подпись для функции Kotlin с параметрами по умолчанию изменять внешний класс через анонимный внутренний объект в котлине Recycler Просмотр перетаскивания по различным типам просмотра Как справляться с проблемой перегрузки неоднозначность функций с дженериками? Могу ли я отправить функцию расширения через параметр функции Преобразование объекта с полями с нулевым значением в объект с полями, не допускающими нулевое значение, или null Карта короткого замыкания Котлина {}. FirstOrNull {} Как вызвать функцию baseactivity из viewmodel в android OkHttp CookieJar не может добавить cookie для запроса Почему у нас есть функции, которые назвали componentN в Котлине