从recyclerview删除项目并使其正确更新

时间:2019-12-08 07:28:16

标签: java android android-recyclerview

因此,我有一个包含两个小部件的Cardview(其警报应用程序),还有一个图像按钮,单击该按钮可删除所述警报。这是代码:

   @Override
        public void onClick(View v) {
            //TODO: needs work. Currently deletes random alarms
            alarms.remove(position);
            everyday.remove(position);
            weekdays.remove(position);
            weekends.remove(position);
            onOff.remove(position);

            notifyItemRemoved(position);
            notifyItemChanged(position, alarms);
            notifyItemChanged(position, everyday);
            notifyItemChanged(position, weekdays);
            notifyItemChanged(position, weekends);
            notifyItemChanged(position, onOff);
        }
    });

现在的问题是,它并不总是删除正确的项目(取决于我根据其在屏幕上的物理位置单击的项目),并且当确实删除正确的项目时,它并不总是设置其他项目属性应该是应该的。所有这些都是在recyclerview适配器的onBind方法中发生的。

PS:我传递的所有数据都是随机的,只是为了测试功能。

1 个答案:

答案 0 :(得分:0)

删除或更新model.add(ConvLSTM2D( filters=20, kernel_size=(3, 3), batch_input_shape=(None, 1, 32, 32, 3), input_shape=(1, 32, 32, 3), padding="same", return_sequences=True, data_format="channels_last" )) 的最佳方法之一是将RecyclerView用于列表。它会处理您所有的通知内容,并添加一些出色的动画,同时在列表中删除和添加一些新项目。

这是DiffUtil的一个很好的例子: DiffUtil Example

我认为这会对您有所帮助。