我有一个Fragment并希望通过发出http请求将一些json数据加载到其中。
Activity中发出请求并将数据传递给Fragment或直接在Fragment中加载数据的正确做法是什么?
目前,我正在直接加载Fragment中的数据,但我一直在检查片段isAdded()并且getActivity()在数据加载后以及在片段中显示时不null

最佳答案

我相信数据的加载属于片段。否则,如果您的mainActivity有5个片段,那么您的代码将非常复杂和混乱。
您还可以定义一个负责加载数据的类。类似的东西(伪代码!):

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);
    }

}

08-18 12:09
查看更多