我正在使用片段和异步任务开发一个android应用程序来填充listview数据,主要问题是当调用片段时async执行onCreateView()并且当我切换时也无法保存实例状态片段
答案 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解决了它