The main reason is that, because you called set-data and that method did not immediately notify that the data set was changed, therefore it was not ware. public void setData(List<RobotViewModel> data) { Log.e("data size ", data.size() + ""); list.clear(); list.addAll(data); }