Java 片段内部的RecyclerView未更新

Java 片段内部的RecyclerView未更新,java,android,android-recyclerview,fragment,Java,Android,Android Recyclerview,Fragment,在我的应用程序中,我有一个ViewPager,其中包含5个片段,每个片段内部都有一个RecyclerView。单击一个按钮后,我需要刷新我的RecyclerViews项目,因此我向服务器发送请求并在活动中获得响应,然后我调用notifyDataSetChanged()用于我的所有RecyclerViews,但在刷新我的ViewPager的2-3页之前,更改不可见。怎么了?下面是我的应用程序中的一些代码 片段: public class ReservedFragment extends Fragm

在我的应用程序中,我有一个
ViewPager
,其中包含5个片段,每个片段内部都有一个
RecyclerView
。单击一个按钮后,我需要刷新我的
RecyclerView
s项目,因此我向服务器发送请求并在活动中获得响应,然后我调用
notifyDataSetChanged()用于我的所有
RecyclerView
s,但在刷新我的
ViewPager的2-3页之前,更改不可见。怎么了?下面是我的应用程序中的一些代码

片段:

public class ReservedFragment extends Fragment {
List<ReservedTimesModel> arrayList;
ReservedTimesAdapter reservedTimesAdapter;
RecyclerView recyclerView;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_reserved, container, false);
    recyclerView = (RecyclerView) view.findViewById(R.id.fragment_recycle);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    if (arrayList != null) {
        if (!arrayList.isEmpty()) {
            reservedTimesAdapter = new ReservedTimesAdapter(arrayList, getActivity());
            recyclerView.setAdapter(reservedTimesAdapter);
        } else {
            view.findViewById(R.id.textview).setVisibility(View.VISIBLE);
        }
    } else {
        view.findViewById(R.id.textview).setVisibility(View.VISIBLE);
    }
    return view;
}

public void refresh() {
    if (reservedTimesAdapter != null) {
        if (arrayList.isEmpty()) {
            getView().findViewById(R.id.textview).setVisibility(View.VISIBLE);
        } else {
            reservedTimesAdapter.notifyDataSetChanged();
        }
    }
}
为每个片段设置新列表后,活动刷新中的代码:

viewPager.setVisibility(View.VISIBLE);
reservedFrag.refresh();
deprecatedFrag.refresh();
cancelledFrag.refresh();
cancelledByAdminFrag.refresh();
pendingFrag.refresh();
viewPager.setCurrentItem(4);

根据变量的值有条件地调用您的
notifyDataSetChanged
。也许根本没有人叫它


很难说清楚,因为代码太少。

似乎只有当
arrayList
为空时,适配器才会收到通知。我为此挣扎了大约5个小时,但我没有注意到if语句。谢谢
viewPager.setVisibility(View.VISIBLE);
reservedFrag.refresh();
deprecatedFrag.refresh();
cancelledFrag.refresh();
cancelledByAdminFrag.refresh();
pendingFrag.refresh();
viewPager.setCurrentItem(4);