android Onservablelist.OnListChangedCallback не работает - PullRequest
0 голосов
/ 12 июля 2020

В адаптере RecyclerView я использую Onservablelist и реализую ObservableList.OnListChangedCallback следующим образом:

public abstract class BaseAdapter<T> extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    private ObservableList<T> mData;
    private ObservableList.OnListChangedCallback<ObservableList<T>> mChangedCallback;

    public BaseAdapter(ObservableList<T> data) {
        mData = data;
        initOnListChangedCallback();
    }

    private void initOnListChangedCallback() {

        mChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<T>>() {

           ...
        };
    }

    @Override
    public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
        mData.addOnListChangedCallback(mChangedCallback);
    }

    @Override
    public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) {
        super.onDetachedFromRecyclerView(recyclerView);
        mData.removeOnListChangedCallback(mChangedCallback);
    }

   ...
}

когда мне это нравится:

data.addAll(XX); // it work well and adapter receive the notify

но, когда мне это нравится :

data.removeAll(XX); // it work well ,but the adapter cann't receive the notify

и когда мне это нравится:

foreach(A a:XX){
  data.remove(a); // it work well and adapter receive the notify
}

Вопрос: 1. почему removeAll не работает, но удалить работает хорошо?

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