Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在索引0处向可变列表中添加项目不会更新回收视图

在索引0处向可变列表中添加项目不会更新回收视图
EN

Stack Overflow用户
提问于 2022-01-16 02:31:56
回答 1查看 415关注 0票数 1

我在一个片段中有一个回收视图,它显示一个可变的任务列表,每个任务都有一个标题和描述,包装在可变的实时数据中。

private val _tasks = MutableLiveData<MutableList<Task>>()

为了添加这些项,我实现了一个底部工作表对话框片段,其中包含两个值的文本编辑。

当我在没有指定索引的情况下添加任务项时,回收视图将正确更新:

_tasks.value!!.add(Task(taskEditText,descriptionEditText))

但是,当我指定要在索引0处添加新任务项并添加多个任务项时,回收视图显示我多次添加的第一个任务。

我尝试过的事情:

在适配器中使用notifyDataSetChanged可以正确地工作和更新回收视图,但是我尝试将它添加到我的底部工作表对话框中的add任务按钮中,但是它什么也不做。

我尝试将这些项添加到临时列表中,然后将其设置为_tasks.value,但同样的事情发生了,只有在没有指定索引的情况下才会进行更新。

以下是相关档案:

AddTaskFragment (底片对话框):

代码语言:javascript
运行
AI代码解释
复制
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    binding.lifecycleOwner = viewLifecycleOwner
    // if the textfields are not empty, adds the task and leaves the dialog
    binding.buttonAdd.setOnClickListener{
        if (binding.addTaskEditText.text!!.isNotEmpty() && binding.addDescriptionEditText.text!!.isNotEmpty()) {
            viewModel.addTask(binding.addTaskEditText.text.toString(), binding.addDescriptionEditText.text.toString())
            dismiss()
        }
    }
}

视图模型中的addTask函数:

代码语言:javascript
运行
AI代码解释
复制
fun addTask(taskEditText : String, descriptionEditText : String) {
    _tasks.value!!.add(0,Task(taskEditText,descriptionEditText))
}

适配器:

代码语言:javascript
运行
AI代码解释
复制
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val task = viewModel.tasks.value!![position]
    holder.itemTitle.text = task.text
    holder.itemDescription.text = task.description
    holder.textViewOptions.setOnClickListener {
        onMenuClick(position, holder, task)
    }
}

提前谢谢,我希望你们的专业人士能帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-16 04:03:08

代码语言:javascript
运行
AI代码解释
复制
viewModel.tasks.observe(viewLifecycleOwner, Observer {
            adapter.notifyDataSetChanged()
        })

试试看。

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

https://stackoverflow.com/questions/70729218

复制
相关文章
jQuery 遍历
jQuery 遍历,意为"移动",用于根据其相对于其他元素的关系来"查找"(或选取)HTML 元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。
陈不成i
2021/07/22
8760
jQuery遍历函数
.closest():从元素本身開始,逐级向上级元素匹配。并返回最先匹配的祖先元素。
全栈程序员站长
2022/07/07
1.1K0
【案例】jQuery+CSS3列表布局切换特效
jQuery+CSS3列表布局切换特效是一款基于jQuery和CSS3模块网格和列表响应式布局切换代码。同学们还想了解哪些网页知识就在后台留言给我吧!
用户1730674
2020/03/26
2.1K0
【案例】jQuery+CSS3列表布局切换特效
jquery tmpl遍历
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148365.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
1.8K0
jQuery 遍历- 过滤
三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。
陈不成i
2021/07/22
9910
jQuery 遍历 - 祖先
parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)。
陈不成i
2021/07/22
6690
jquery树遍历
得到当前匹配的元素集合中每个元素的后代, 由一个选择器,jQuery对象,或元素过滤。
IT工作者
2022/03/02
8850
jQuery 遍历 - 后代
下面的例子返回类名为 "1" 的所有 <p> 元素,并且它们是 <div> 的直接子元素:
陈不成i
2021/07/22
7800
如何锁定表头和表行同时锁定_jquery表头固定列
前段时间需要这个功能,但是找了很多都不能完美的实现,不是只能锁定表头,就是浏览器兼容问题什么的,在此就自己做了一个锁定表头和列的js方法,依赖于JQuery。
全栈程序员站长
2022/09/20
2.5K0
如何锁定表头和表行同时锁定_jquery表头固定列
jQuery遍历List对象
在jQuery中,可以使用each()方法以一种非常直观的方式来模拟break和continue关键字的功能。只需在回调函数中编写一条return语句即可。要停止迭代,只需从回调函数返回false,这与在普通循环语句中使用break语句类似。要跳过当前迭代并继续进行下一轮迭代,只需返回true即可,这与在循环语句中使用continue类似。
别团等shy哥发育
2023/02/25
2.1K0
jQuery遍历List对象
jQuery 遍历 - 同胞(siblings)
prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞之前元素遍历,而不是之后元素遍历)。
陈不成i
2021/07/22
7770
JQuery 学习—$.each遍历学习
生活在这样一个充满欢乐的世界中,我们要有欢乐的精神对待工作和生活! 我们每天晚上睡觉早上起来,每天会重复着做很多的事情,我们的生活在程序的角度看其实就是一个循环,这个循环说简单它就简单,说复杂它就很复杂。今天我要用欢乐的方式来介绍的是JQuery的中的一种技术,JQuery 的$.each遍历操作,不管是搞前端还是搞后端javaWeb方向的程序员(猿),你一定会和它偶遇,在某一个转角。 在通往技术的道路上,一定会听到很多流言蜚语,但是我们一定要坚定自己的信念那就是找到一座灯塔,那个灯塔在我们迷茫徘徊的时候可以指引我们朝着正确的方向,那么在技术中指引我们的灯塔是什么呢?那一定是 官方的文档。 1:文档说明
全栈程序员站长
2022/07/19
1.4K0
JQuery 遍历被选中的checkbox元素
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/78819667
泥豆芽儿 MT
2018/09/11
2.2K0
JQuery 遍历被选中的checkbox元素
jQuery 遍历 - siblings() 方法应用
每天写个小demo,最近工作小到1像素,大到n多优化,这个行业真的是有项目的时候忙的要死,没项目的时候闲的发慌,趁着办公室没人的时候,安安静静继续写代码,一个关于jQuery 遍历 - siblings() 方法应用。
王小婷
2019/08/01
8710
jQuery 遍历 - siblings() 方法应用
图的遍历(下)——邻接表
在我的上一篇博客:图的遍历(上)——邻接矩阵 中主要介绍了邻接矩阵的BFS和递归的DFS与非递归的DFS这3种遍历算法。在这篇博客我将主要叙述邻接表的以上3中遍历算法。首先来看看邻接表的表示方法。
AI那点小事
2020/04/20
9320
图的遍历(下)——邻接表
如何生成A-AZ列 excel表的列 不用序号的那种?
前几天在Python最强王者交流群【逸】问了一个Pyhton处理Excel的问题,这里拿出来给大家分享下。
前端皮皮
2022/12/19
1.8K0
如何生成A-AZ列 excel表的列 不用序号的那种?
前端基础-JQuery(each方法遍历)
第7章 each方法遍历 jQuery的隐式迭代会对所有的DOM对象设置相同的值,但是如果我们需要给每一个对象设置不同的值的时候,就需要自己进行迭代了。 作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数 // 参数一表示当前元素在所有匹配元素中的索引号 // 参数二表示当前元素(DOM对象) $(selector).each(function(index,element){});
cwl_java
2020/03/26
1.3K0
pandas按行按列遍历Dataframe的几种方式
iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。 itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率高。 iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问。 示例数据
kirin
2021/04/30
7.2K0
JQuery跳出each循环的方法(包含数组遍历)
break----用return false;  continue --用return ture;
ydymz
2018/09/10
3K0
Hash表(二)——散列冲突
在Hash表(一)——Hash函数已经分析了散列冲突产生的原因,我们一般使用开放寻址法和链表法来解决。
用户3470542
2019/07/10
1.4K0
Hash表(二)——散列冲突

相似问题

jquery遍历表中的单元格列。

20

jquery遍历表

30

JQuery遍历表

10

JQuery表遍历

10

在jQuery中遍历表中的第二列

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文