список текущих данных r не обновляется методом DiffUtil - PullRequest
0 голосов
/ 26 сентября 2019

Я использовал рекомендации Google, чтобы создать свой вид рециркулятора с помощью утилит diff, но утилиты diff не обновляются с моим списком liveata. Я перепробовал все

Класс моей модели

data class Note(
    val Title:String?=null,//column 2
    val Note:String?=null// column 3
):Serializable{
    @PrimaryKey(autoGenerate = true)
    var id:Int=0
}

МойАдаптер Recylerview


    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val item=getItem(position)
        holder.bind(item,clickLitener)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder.from(parent)
    }

}

class ViewHolder constructor(val binding: NoteLayoutBinding):RecyclerView.ViewHolder(binding.root){

    fun bind(item:Note,clickLitener: NoteClickLitener){
        binding.noteDB=item
        binding.clicklistener=clickLitener
        binding.executePendingBindings()
    }

    companion object{
        fun from(parent: ViewGroup):ViewHolder{
            val layoutInflater=LayoutInflater.from(parent.context)
            val binding=NoteLayoutBinding.inflate(layoutInflater,parent,false)
            return ViewHolder(binding)
        }
    }
}


class NoteAdapterDiffUtils :DiffUtil.ItemCallback<Note>(){

    override fun areItemsTheSame(oldItem: Note, newItem: Note): Boolean {
        return oldItem.id==newItem.id
    }

    override fun areContentsTheSame(oldItem: Note, newItem: Note): Boolean {
        return  oldItem==newItem
    }



}


class NoteClickLitener(val clicklistener: (Note)->Unit){
    fun onClick(Note:Note)=clicklistener(Note)

Основной фрагмент


    private fun subscribeObserver(){
        viewModel.loadData().observe(viewLifecycleOwner, Observer {
            it.let {
                adapter.submitList(it)
            }
        })
    }

он просто наблюдает, когда в комнату добавляются новые данные, но не вычисляет список, когда я ничего не удаляю, пожалуйста, ябыл бы признателен за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...