使用http请求在片段中加载数据

loading data in fragment using http request

我有一个 Fragment,我想通过发出 HTTP 请求将一些 JSON 数据加载到其中。

Activity 中发出请求并将数据传递给 Fragment 或直接在 Fragment 中加载数据的正确做法是什么?

目前,我正在直接在 Fragment 中加载数据,但我一直在检查片段 isAdded() 并且 getActivity() 不是 null 数据加载后以及何时将在片段中显示它。

它根本不会影响片段或 activity,因为请求是在后台完成的。这取决于您的条件,是要在片段出现后立即显示内容,还是可以在片段内等待。例如:- 如果您不想显示片段的视图,那么只需执行请求操作并在 activity 内等待,当您获得结果时,只需移回片段即可。希望对您有所帮助

我相信加载数据属于片段。否则,如果您的 MainActivity 有 5 个片段,您的代码将变得复杂和混乱。

您还可以定义一个 class 来负责加载数据。类似的东西(伪代码!):

public class FragmentCustomerList extends Fragment implements OnCustomersLoadedCallback {

    @Override
    public void onStart() {
        super.onStart();

        showLoadingDataView(); // show data loading spinner

        DataLoader.instance().loadCustomersASYNC(this);
    }

    // OnCustomersLoadedCallback 

    @Overrride
    public void onDataLoaded(List<Customer> customers){

        hideLoadingDataView(); // hide data loading spinner

        showData(customers);
    }

}