Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在RecyclerView中更改列表中某些项的字段时,NotifyDataSetChanged不起作用_Android_Android Recyclerview_Notifydatasetchanged - Fatal编程技术网

Android 在RecyclerView中更改列表中某些项的字段时,NotifyDataSetChanged不起作用

Android 在RecyclerView中更改列表中某些项的字段时,NotifyDataSetChanged不起作用,android,android-recyclerview,notifydatasetchanged,Android,Android Recyclerview,Notifydatasetchanged,我有一个模型UniqueUserTransModel和一个UniqueArrayList。最初,我拥有列表,并将其传递给适配器 旧列表-> pos : 0, name : "user 1", transcount : 10 pos : 1, name : "user 2", transcount : 9 pos : 2, name : "user 3", transcount : 8 pos : 3, name : "user 4", transcount : 7 pos : 4, name :

我有一个模型
UniqueUserTransModel
和一个
UniqueArrayList
。最初,我拥有列表,并将其传递给适配器

旧列表->

pos : 0, name : "user 1", transcount : 10
pos : 1, name : "user 2", transcount : 9
pos : 2, name : "user 3", transcount : 8
pos : 3, name : "user 4", transcount : 7
pos : 4, name : "user 5", transcount : 6
更新后,我有一个
NewList
,并将其设置为UniqueArrayList=(新计算的ArrayList)

新列表->

pos : 0, name : "user 2", transcount : 11
pos : 1, name : "user 1", transcount : 9
pos : 2, name : "user 3", transcount : 8
pos : 3, name : "user 4", transcount : 7
pos : 4, name : "user 5", transcount : 6
我刚刚从片段中调用了
notifydatasetChanged

前两项在
NewList
中交换,但不会反映在recyclerview中


为什么它没有反映?我知道如果我清除旧列表并新添加一个新列表,它会工作,或者如果我添加或删除一个新项目,那么它也会工作

不要为适配器创建新的Arraylist

清除arraylist并将所有项目从新arraylist添加到其中

旧阵列列表

UniqueArrayList.clear()
UniqueArrayList.addAll(**name of new arraylist**)
新建阵列列表

UniqueArrayList.clear()
UniqueArrayList.addAll(**name of new arraylist**)
现在再次重新加载数据集

notifyDataSetChanged()

你能提供你的适配器和片段代码吗???很复杂。就是这样,我是这样说的。你想知道什么?我想知道你是如何更新适配器的列表的。我使用领域,我需要做一些计算,所以我拿一个Hashmap,做一些计算,比如计算每个用户的传输数。所以我增加了计数,制作了一个Hashmap,并将所有的值放入ArrayList。现在,当一个新的trans I被创建时,整个代码重新运行,我将从HashMap中得到一个新的更新列表,该列表按trans的编号排序。没有清除,我只是传递ArrayList=(从hmap新生成的列表),但适配器没有改变。正如您描述的过程一样,这似乎是正常的,但对于判断代码中的错误并没有帮助