如何在android片段中使用异步任务填充Listview,并应加载片段启动

时间:2015-04-15 02:32:59

标签: android listview android-fragments asynchronous

我正在使用片段和异步任务开发一个android应用程序来填充listview数据,主要问题是当调用片段时async执行onCreateView()并且当我切换时也无法保存实例状态片段

4 个答案:

答案 0 :(得分:1)

尝试在片段中使用onActivityCreated()方法。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
} 

答案 1 :(得分:0)

我建议使用服务加载,使用LocalBroadcastManager在任务完成时向片段发送消息。

答案 2 :(得分:0)

老爹

正如Chandra所说,尝试在OnActivityCreated()方法中执行AsyncTask。 当数据加载到dataObject然后将其填充到listview适配器中,如下所示。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
             new AsyncGetData().execute();
}


class AsynGetData extends AsyncTask<Void, Void, Void>{

            @Override
            protected Void doInBackground(Void... params) {

                // Add data into dataObject from web-services or database into ArrayList or String[] and use this dataObject in OnPostExecute() method below

                return null;
            }

            @Override
            protected void onPostExecute(Void result) {
                super.onPostExecute(result);

                listView.setAdapter(new CustomAdapter(getActivity(), dataObject));

            }

}

答案 3 :(得分:0)

我已经能够解决问题了,它是在我的asyncTask onPreExecute()我有了refreshMenuItem导致了主要问题,所以我在onPreExecute()类中使用ProgressDialog解决了它