从Fragment类调用Web服务(API)的正确方法

Dwi*_* Ji 12 java android web-services android-fragments android-fragmentactivity

我需要知道,在哪个片段回调方法中,我们应该调用一个Web服务,通​​过它返回片段Web服务之后不应再调用.

例如.我有一个片段类MyFragment.java

public class MyFragment extends Fragment {


    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_layout, container,
                false);

        return rootView;
    }

}
Run Code Online (Sandbox Code Playgroud)

我需要知道哪个回调方法我必须调用webservice来更新片段的UI.现在我从onCreateView方法调用Web服务.但我需要知道从片段调用Web服务的最佳方法是什么.

小智 9

如果我正确理解您的问题,您想从服务器获取一些数据,然后通知片段数据已准备好并重新绘制片段,这是正确的吗?根据这里的文件:

onCreate() - 系统在创建片段时调用它.在您的实现中,您应该在片段暂停或停止时初始化要保留的片段的基本组件,然后重新开始.

onCreateView() 当片段第一次绘制其用户界面时,系统会调用此方法.要为片段绘制UI,必须从此方法返回视图,该视图是片段布局的根.如果片段不提供UI,则可以返回null.

在应用程序的其他位置创建Fragment时,onCreate()将调用方法.当必须首次绘制片段时,调用onCreateView()并且此方法返回创建的视图.在你的情况下,你可能会使用以下内容:

  1. 声明此数据和适配器的实例变量(容器)(如果使用任何).
  2. onCreate,初始化所有这些数据(空容器),初始化适配器,然后执行AsyncTask.
  3. onCreateView,准备视图返回 - 适配器等所以现在,一旦AsyncTask完成,在onPostExecute它调用your_adapter.notifyDataSetChanged().这将重绘片段,因为将通知适配器数据已更改(从服务器获取).