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

时间:2015-04-17 07:41:25

标签: android android-fragments android-activity android-fragmentactivity

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

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

目前,我正在Fragment直接加载数据,但是在加载数据和转到数据后,我一直在检查片段isAdded()getActivity()不是null将它显示在片段内。

2 个答案:

答案 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)

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