首页 > 解决方案 > Android|Kotlin recyclerView 更新一项

问题描述

我有这个问题:

我在我的应用程序中使用了回收站视图,但问题是我需要更新我的回收站视图的一个项目。

当我单击回收站视图项目时,它会将我发送到另一个屏幕,我在其中更新值并返回(这是有效的,我得到了后面的值)

我试图在我的适配器中添加一个新函数,如下所示:

public fun updateItem(updatedOI: ArrayList<OrderItem>){
        orderItem = updatedOI
        notifyDataSetChanged()
    }

然后从我的片段/活动中调用该函数,但它不起作用。

我基本上需要以某种方式获取索引并更新该单个索引它现在正在做的是删除所有项目并添加更新的项目。

我该如何解决这个问题?

标签: androidkotlinandroid-recyclerview

解决方案


问题是您无法通过引用另一个数据来更新数据。

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)

}

推荐阅读