android - Android|Kotlin recyclerView 更新一项
问题描述
我有这个问题:
我在我的应用程序中使用了回收站视图,但问题是我需要更新我的回收站视图的一个项目。
当我单击回收站视图项目时,它会将我发送到另一个屏幕,我在其中更新值并返回(这是有效的,我得到了后面的值)
我试图在我的适配器中添加一个新函数,如下所示:
public fun updateItem(updatedOI: ArrayList<OrderItem>){
orderItem = updatedOI
notifyDataSetChanged()
}
然后从我的片段/活动中调用该函数,但它不起作用。
我基本上需要以某种方式获取索引并更新该单个索引它现在正在做的是删除所有项目并添加更新的项目。
我该如何解决这个问题?
解决方案
问题是您无法通过引用另一个数据来更新数据。
fun update(items: List<OrderItem>) {
orderItem.clear()
orderItem.addAll(items)
notifyDataSetChanged()
}
我在这里使用列表是因为它比使用数组更容易,您的内部数据应该是一个可变列表。
如果您只想更新 1 个项目。您可以获取索引,然后将其传回
//in the fragment/activity
intent.putExtra(INDEX, youClickedIndex)
然后像你所说的那样设置结果
fun update(item: OrdertItem, index: Int) {
orderItem.add(index, item)
notifyItemChanged(index)
}
推荐阅读
- react-native - 排毒 UI 测试 - 在 CI 上运行时测试超时
- ios - 如何使 SwiftUI 视图可滚动?
- python - 如何使用 http 分块标头压缩一些文件并在压缩时发送它?
- google-app-engine - appengine 下 webapp2 端点的高延迟
- python - 如何访问相互嵌套的多层字典和列表并将它们收集到列表中
- javascript - javascript中的原型继承不起作用
- r - 从“信息”获取输出到 RStudio 查看器窗口
- postgresql - 如何使用 COPY 命令从 csv 文件导入 jsonb 列?
- html - 从跨域 iframe 到父窗口的通信
- amazon-web-services - 添加额外的 sns:取消订阅 SNS 访问策略导致 InvalidParameter 错误