Android - 在改装中设置适配器

时间:2016-09-28 11:26:41

标签: android android-recyclerview retrofit

Fragment中,在onCreateView方法中,我以这种方式设置适配器:

final BusStopAdapter mAdapter = new BusStopAdapter(nearbyBusStations);
mRecyclerView.setAdapter(mAdapter);

然后有一个改进方法,它在适配器中设置了nearBusStations:

 service.getJson(origin, dest).enqueue(new Callback<DirectionResults>() {
            @Override
            public void onResponse(Call<DirectionResults> call, Response<DirectionResults> response) {
                Route routeA = response.body().getRoutes().get(0);
                Legs legs = routeA.getLegses().get(0);
                nearbyBusStations.add(new NearbyBusStation(currentItem.getName(), String.valueOf(legs.getDistance().getValue()), legs.getDuration().getText()));
            mAdapter.swapItems(nearbyBusStations);
               mAdapter.notifyItemInserted(nearbyBusStations.size() - 1);
            }

            @Override
            public void onFailure(Call<DirectionResults> call, Throwable t) {
                Log.d("CallBack", " Throwable is " + t);
            }
        });

这些代码行有效,但问题是我要清除另一个mRecyclerView中的AsyncTask。我尝试了一些方法,但没有任何作用。 我需要清除mRecyclerView,因为我必须刷新附近的公共汽车站。

2 个答案:

答案 0 :(得分:2)

只需清除您的arraylist并通知适配器您要清除回收者视图的位置。

实施例: -

nearbyBusStations.clear();
mAdapter.setnotifyDataSetChanged();

希望它能帮到你..

答案 1 :(得分:2)

您应该清除列表并通知适配器,如下所示

nearbyBusStations.clear();
mAdapter.setnotifyDataSetChanged();