我需要在ListFragment中显示一些数据。我正在使用AsyncTask从Internet下载数据,然后使用适配器更新数据。
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activity = getActivity();
context = activity.getApplicationContext();
res = activity.getResources();
resFactory = createFactory(context);
dataFolder = resFactory.getDataFolder();
dataFile = resFactory.getDataFile();
ArrayList list = resFactory.getArrayList();
setListAdapter(resFactory.getAdapter(context, list));
linkToData = resFactory.getDataLink(res);
getData();
}
在getData
我开始AsyncTask
。
我希望getData
只能在一个用户会话中执行一次。因此,如果片段已分离然后再次附加,我不想再次下载数据。但是如果刚刚创建了片段,我希望它能够下载数据。
对此的简单回答是从getData
调用onCreate()
,但后来我得到nullPointer,因为那时我没有AsyncTask
。因此,我需要以某种方式知道片段是刚刚创建的还是刚刚分离然后再次附加。
英语不是我的母语。所以我很抱歉如果我的问题不太明白。
答案 0 :(得分:1)
package com.example.gridview;
import android.os.Bundle;
import android.support.v4.app.Fragment;
/**
* @author rajeshcp
*/
public class FrgamentX extends Fragment {
private boolean mIsCreated;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
if(!mIsCreated)
{
mIsCreated = true;
//load data
}
}
}
这也行。