我的ArrayList不会清除

时间:2016-03-05 17:21:16

标签: android arraylist swiperefreshlayout

我有一个使用RecyclerView和CardView的应用程序来显示我的主页面中的一些项目(片段)。

我想用SwipeRefreshLayout刷新数据。

SwipeRefreshLayout.setOnRefreshListener中,我尝试这样做以进行刷新: 1-首先清除RecyclerViews ArrayList 2-然后加载数据(getData()

但是ArrayList.clear()有时候不会完全清除列表!

有时它会完全清除,有时需要刷两次刷新,甚至有时需要三次!!!!

我应该做什么?

这只是刷卡刷新中的清除代码(我在加载数据时没有问题):

        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh()
        {

            listCars.clear();

            adapter.notifyDataSetChanged();

            mSwipeRefreshLayout.setRefreshing(false);

        }
    });

1 个答案:

答案 0 :(得分:0)

我在notifyDataSetChanged()RecyclerView适配器上也经历过一些奇怪的行为,我现在这样做就是在你onRefresh()方法中调用这个方法

adapter.updateData(newData);

在我的适配器中使用此方法

public void updateData(List<Foo> newData) {
    this.mDataSet = newData;
    notifyDataSetChanged();
}

出于某些原因,在适配器外部调用的notifyDataSetChanged();并非始终有效。