我有一个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);
}
}