【问题标题】:Android|Kotlin recyclerView update one itemAndroid|Kotlin recyclerView 更新一项
【发布时间】:2020-06-07 01:50:54
【问题描述】:

我有这个问题:

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

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

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

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

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

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

我该如何解决这个问题?

【问题讨论】:

  • 你有没有调试检查updateItem被正确调用
  • updatedOI 是否应该只包含一个项目,即您要更改的项目?
  • 我想获取它的索引然后更新它,现在它有点更新但它删除了所有以前的“行”并只添加最后一个

标签: android kotlin android-recyclerview


【解决方案1】:

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

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)

}

【讨论】:

  • 那你会把它标记为正确答案吗? @DavidSahagúnMayorga
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多