在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) } })
- Android Kotlin将文本字段的值传递给numberPicker
- Android Firestore微调不加载我的文档
- 应用; 曾经使用过不同的AppComponent; 在预先验证期间
- Android体系结构组件房间ViewModel CompleteableFormAction
- 如何创建像anko – DSL语法Kotlin嵌套函数回调
您可以在添加新项目之前清除列表,但是如果您希望将来逐一添加它们或者更多的逻辑,我建议您在Adapter
添加DiffUtil
以管理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) } })
清晰的研讨会适应API调用,以便数据不会重复。 试试上面的代码
- kotlin-kapt插件不使用“kapt.generateStubs”
- 使用C ++支持时,Android Studio调试器不起作用
- fromCallable中的RXjava2方法不尽人意
- 如何将MotionEvent停机时间与时钟进行比较,时间基准是多少?
- 在kotlin中打开alertDialog,如何设置单选按钮的消息
- Kotlin Android中的Observable无法从()运算符调用
- 以编程方式在Kotlin中定制TypeFace
- 如何在Kotlin Android中为数据类创建空构造函数
- Kotlin中的super.onCreate(saveInstanceState)中的illegalArgumentsException