首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android|Kotlin recyclerView更新一条

Android|Kotlin recyclerView更新一条
EN

Stack Overflow用户
提问于 2020-06-07 01:50:55
回答 1查看 822关注 0票数 1

我有这个问题:

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

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

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

代码语言:javascript
运行
AI代码解释
复制
public fun updateItem(updatedOI: ArrayList<OrderItem>){
        orderItem = updatedOI
        notifyDataSetChanged()
    }

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

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

如何解决此问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-08 21:25:12

问题是你不能通过引用另一个数据来更新数据。

代码语言:javascript
运行
AI代码解释
复制
fun update(items: List<OrderItem>) {
    orderItem.clear()
    orderItem.addAll(items)
    notifyDataSetChanged()

}

我在这里使用列表,因为它比使用数组更容易,你的内部数据应该是一个可变的列表。

如果您只想更新1个项目。您可以获取索引,然后将其传回

代码语言:javascript
运行
AI代码解释
复制
//in the fragment/activity
intent.putExtra(INDEX, youClickedIndex)

然后将结果设置回来,就像你所说的那样

代码语言:javascript
运行
AI代码解释
复制
fun update(item: OrdertItem, index: Int) {
    orderItem.add(index, item)
    notifyItemChanged(index)

}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62240010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档