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新生成的列表),但适配器没有改变。正如您描述的过程一样,这似乎是正常的,但对于判断代码中的错误并没有帮助