gpt4 book ai didi

java - DiffCallBack不被调用吗?

转载 作者:行者123 更新时间:2023-12-03 10:55:52 26 4
gpt4 key购买 nike

因此,我有一个ListAdapter,并且每次都使用adapter.submitList()在适配器内部传递新列表,但奇怪的是,它仅是第一次提交该列表,而下次它只是不显示该项目适配器
这是我提交 list 的方式

 private fun insertListToRv() {
val mName = editText_checkbox.text.toString()
val isChecked = false

if (mName == "") {
Toast.makeText(requireContext(), "Please fill out all fields.", Toast.LENGTH_SHORT)
.show()
} else {

val newListData = TaskList(
mName,
isChecked,
0,
mNoteId
)
itemList.add(newListData)
adapter.submitList(itemList)
Log.d("TAG2","Current List: ${adapter.currentList}")
counter++
editText_checkbox.setText("")
}


}
在这里,itemList是一个全局变量,已初始化为ArrayList()
var itemList: MutableList<TaskList> = ArrayList()
我什至在DiffCallBack内放置了一些日志语句,在这种情况下它仅被调用一次,此后它根本不会被调用。
这是我的DiffCallBack类别
class DiffCallBack(
) : DiffUtil.ItemCallback<TaskList>() {
override fun areItemsTheSame(oldItem: TaskList, newItem: TaskList): Boolean {
Log.d("TAG3","Inside")
return oldItem.Taskid == newItem.Taskid

}

override fun areContentsTheSame(oldItem: TaskList, newItem: TaskList): Boolean {
Log.d("TAG3","Inside")
return oldItem == newItem

}


}
我还调试了代码,并注意到我的adapter.currentList正在更新。
此实现可能有什么问题?

最佳答案

看来问题可能会重用相同的 list

val newListData = TaskList(
mName,
isChecked,
0,
mNoteId
)
val adapterList = itemList + newListData
adapter.submitList(adapterList)

关于java - DiffCallBack不被调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65630836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com