Duplicación del adaptador en la Vista de reciclador

Hola, soy nuevo en progtwigción y mi problema es cuando cambio las tabs de mi navigation. Mis datos se duplican cuando se carga de nuevo.

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) } }) 

Puede borrar la list antes de agregar nuevos elementos, pero en caso de que desee agregarlos uno por uno o algo más de lógica en el futuro, le sugiero que agregue DiffUtil dentro de su Adapter para administrar el contenido de su Adapter

DiffUtil es una class de utilidad que puede calcular la diferencia entre dos lists y generar una list de operaciones de actualización que convierte la primera list en la segunda. Se puede usar para calcular actualizaciones para un adaptador RecyclerView.

Eche un vistazo a esta publicación que explica cómo implementarla junto con un Adapter y un RecyclerView

Si seminarsAdapter ya tiene algunos datos, los agregará al set existente de datos.

Tal vez, agregue un método clear a su onSuccess(...) -type y onSuccess(...) antes en 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) } }) 

Seminarios claros Lista de adaptadores en la respuesta de la llamada de API para que los datos no se repitan. testing el código arriba

  • usando Room con kotlin, obtén una exception cuando construyas la database
  • Servicio VPN local de Android: no puede reenviar packages
  • Llamada API no funciona dentro de Anko Async
  • ¿Cómo manejar excepciones en Kotlin?
  • Uso de elementos HTML estándar en KotlinJS escritos de forma segura
  • ¿Cómo nombrar un hilo?
  • ¿Cómo configurar la versión de Kotlin en Android Studio?
  • RX java / Android cómo lograr este brindis en cada clic usando el operador de rebote
  • ¿Cómo se determinan los commands de compilation que emite IntelliJ Idea?
  • Sala: entidades relacionadas - constructor público utilizable
  • Android / Kotlin: reference no resuelta: madera