我有这个问题:
我在我的应用程序中使用了回收器视图,但问题是我需要更新回收器视图的一个项目。
当我单击recycler视图项目时,它会将我发送到另一个屏幕,在那里我更新值并返回(这是有效的,我得到了后面的值)
我尝试在适配器中添加一个新函数,如下所示:
public fun updateItem(updatedOI: ArrayList<OrderItem>){
orderItem = updatedOI
notifyDataSetChanged()
}
然后从我的片段/活动中调用函数,但它不起作用。
我基本上需要以某种方式获取索引并更新单个索引,它现在所做的就是删除所有项,然后添加更新的项。
如何解决此问题?
发布于 2020-06-08 21:25:12
问题是你不能通过引用另一个数据来更新数据。
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)
}
https://stackoverflow.com/questions/62240010
复制相似问题