我有一个Fragment
,我想通过发出HTTP请求将一些JSON数据加载到其中。
在Activity
中提出请求的正确做法是什么,并将数据传递给Fragment
或直接加载Fragment
中的数据?
目前,我正在Fragment
直接加载数据,但是在加载数据和转到数据后,我一直在检查片段isAdded()
和getActivity()
不是null
将它显示在片段内。
答案 0 :(得分:1)
我认为加载数据属于片段。否则,如果您的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);
}
}
答案 1 :(得分:0)
它根本不会影响片段或活动,因为请求是在后台完成的。这取决于您的条件,您是否要在片段外观之后显示内容,或者您可以在片段内等待。例如: - 如果您不想显示片段的视图,那么只需执行请求操作并在活动内等待,当您获得结果时,只需返回片段即可。希望这会对你有所帮助