16 | * 判断是否是同一个item 17 | * 18 | * @param oldItem New data 19 | * @param newItem old Data 20 | * @return 21 | */ 22 | @Override 23 | public boolean areItemsTheSame(@NonNull DiffEntity oldItem, @NonNull DiffEntity newItem) { 24 | return oldItem.getId() == newItem.getId(); 25 | } 26 | 27 | /** 28 | * When it is the same item, judge whether the content has changed. 29 | *
30 | * 当是同一个item时,再判断内容是否发生改变
31 | *
32 | * @param oldItem New data
33 | * @param newItem old Data
34 | * @return
35 | */
36 | @Override
37 | public boolean areContentsTheSame(@NonNull DiffEntity oldItem, @NonNull DiffEntity newItem) {
38 | return oldItem.getTitle().equals(newItem.getTitle())
39 | && oldItem.getContent().equals(newItem.getContent())
40 | && oldItem.getDate().equals(newItem.getDate());
41 | }
42 |
43 | /**
44 | * Optional implementation
45 | * Implement this method if you need to precisely modify the content of a view.
46 | * If this method is not implemented, or if null is returned, the entire item will be refreshed.
47 | *
48 | * 可选实现
49 | * 如果需要精确修改某一个view中的内容,请实现此方法。
50 | * 如果不实现此方法,或者返回null,将会直接刷新整个item。
51 | *
52 | * @param oldItem Old data
53 | * @param newItem New data
54 | * @return Payload info. if return null, the entire item will be refreshed.
55 | */
56 | @Override
57 | public Object getChangePayload(@NonNull DiffEntity oldItem, @NonNull DiffEntity newItem) {
58 | return null;
59 | }
60 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/chad/baserecyclerviewadapterhelper/activity/differ/adapter/DiffUtilAdapter.java:
--------------------------------------------------------------------------------
1 | package com.chad.baserecyclerviewadapterhelper.activity.differ.adapter;
2 |
3 | import android.content.Context;
4 | import android.view.ViewGroup;
5 |
6 | import androidx.annotation.NonNull;
7 |
8 | import com.chad.baserecyclerviewadapterhelper.R;
9 | import com.chad.baserecyclerviewadapterhelper.entity.DiffEntity;
10 | import com.chad.library.adapter4.BaseDifferAdapter;
11 | import com.chad.library.adapter4.viewholder.QuickViewHolder;
12 |
13 | /**
14 | * Create adapter
15 | */
16 | public class DiffUtilAdapter extends BaseDifferAdapter