Проблема в том, что мой RecyclerView не обновляется, пока я не установлю новый адаптер. Вот код:
TransferLab transferLab = TransferLab.get(getActivity());
List<Transfer> transfers = transferLab.getTransfers();
if (mAdapter == null) {
mAdapter = new TransferAdapter(transfers);
mTransferRecyclerView.setAdapter(new TransferAdapter(transfers));
} else {
mAdapter.setTransfers(transfers);
mAdapter.notifyDataSetChanged();
}
Как видите, я получаю новый список и передаю его в адаптер. Но RecyclerView не изменится, пока я не перезапущу приложение или не заменю IF-секцию с кодом ниже:
mAdapter = new TransferAdapter(transfers);
mTransferRecyclerView.setAdapter(new TransferAdapter(transfers));
Внутри адаптера:
private class TransferAdapter extends RecyclerView.Adapter<TransferViewHolder> {
private List<Transfer> mTransfers;
public TransferAdapter(List<Transfer> transfers) {
mTransfers = transferList;
}
public void setTransfers(List<Transfer> transfers) {
mTransfers = transfers;
}
@NonNull
@Override
public TransferViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(getActivity());
return new TransferViewHolder(inflater, parent);
}
@Override
public void onBindViewHolder(@NonNull TransferViewHolder holder, int position) {
holder.bind(mTransfers.get(position));
}
@Override
public int getItemCount() {
return mTransfers.size();
}
}