Android丢失了ArrayList数据
我有一个存储某些图像路径的ArrayList:Android丢失了ArrayList数据,android,arraylist,Android,Arraylist,我有一个存储某些图像路径的ArrayList: Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades; for(Criterio c : irregularidades.values()) { ArrayList<String> listFotos = c.getFotosList(); } Map unregularidades=criteriadapter.unreg
Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades;
for(Criterio c : irregularidades.values()) {
ArrayList<String> listFotos = c.getFotosList();
}
Map unregularidades=criteriadapter.unregularidades;
对于(标准c:Unregularidades.values()){
ArrayList listFotos=c.getFotosList();
}
但是,如果应用程序通过电话锁或某个呼叫进入后台。当我试图保存数据时,收到一个空指针异常
有人能帮我吗
编辑
我将添加完整的代码,以便于理解
public class SaveFragment extends Fragment {
Map<String, String> detailsLoja = LojaDetailsActivity.detailsVistoria;
/** Called when the activity is first created. */
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_sync_import, container, false);
setHasOptionsMenu(true);
saveData();
return view;
}
@Override
public void onActivityCreated (Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
public void saveData() {
IrregularidadesDbAdapter mDb;
mDb = new IrregularidadesDbAdapter(getContext());
mDb.open();
int idVistoria = mDb.vistoriaInsert(detailsLoja.get("idBombeiro"), detailsLoja.get("idLoja"), detailsLoja.get("idArea"), changeDate(detailsLoja.get("vistoriaData")));
Map<String, Criterio> irregularidades = CriteriosAdapter.irregularidades;
for(Criterio c : irregularidades.values()) {
int idCriterio = c.getId();
int idEquipamento = c.getEquipamento();
int idArea = c.getSubArea;
ArrayList<String> listFotos = c.getFotosList();
int idIrregularidade = mDb.insert(idVistoria, idCriterio, idEquipamento, idArea);
for (int i = 0; i < listFotos.size(); i++) {
mDb.fotosInsert(idIrregularidade, listFotos.get(i));
}
}
mDb.close();
reloadActivity();
}
// Reload MainActivity
public void reloadActivity() {
Intent objIntent = new Intent(getContext(), MainActivity.class);
NavDrawerFragment.mConfiguration = Config.configuration();
NavDrawerFragment.mConfiguration = NavDrawerFragment.mConfiguration.subList(0, 6);
NavDrawerFragment.mConfiguration.add(0, new NavItem("Header", NavItem.TOP));
startActivity(objIntent);
}
}
公共类SaveFragment扩展了Fragment{
Map detailsLoja=LojaDetailsActivity.detailsVistoria;
/**在首次创建活动时调用*/
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图=充气机。充气(R.layout.fragment\u sync\u导入,容器,false);
设置选项菜单(真);
saveData();
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
}
公共void saveData(){
不规则去适应mDb;
mDb=新的数据适配器(getContext());
mDb.open();
int idVistoria=mDb.vistorainsert(detailsLoja.get(“idBombeiro”)、detailsLoja.get(“idLoja”)、detailsLoja.get(“idrea”)、changeDate(detailsLoja.get(“vistoriaData”);
Map unregularidades=criteriadapter.unregularidades;
对于(标准c:Unregularidades.values()){
int-idCriterio=c.getId();
int idEquipamento=c.getequipmento();
int idArea=c.getSubArea;
ArrayList listFotos=c.getFotosList();
int IDIRegularidade=mDb.insert(idVistoria、idCriterio、idEquipamento、idArea);
对于(int i=0;i
方法onCreateView
仅在片段必须在屏幕上加载UI时调用一次。因此需要替换saveData()代码>在另一个位置。方法onCreateView
仅在片段必须在屏幕上加载UI时调用一次。因此需要替换saveData()代码>在另一个地方。什么是c?你什么时候调用那一行?我忘了放一段代码,c是一个对象。什么是unregularidades?请在这里发布你的日志,以便帮助更详细地理解问题。问题是listFotos返回null,当应用程序在后台运行时,如果我不让它运行,它工作正常!什么是c?你什么时候调用那一行?我忘了放一段代码,c是一个对象。什么是unregularidades?请在这里发布你的日志,以便帮助更详细地理解问题。问题是listFotos返回null,当应用程序在后台运行时,如果我不让它运行,它工作正常!该片段不会显示,我只将其作为菜单上的一项来保存数据,因此OnCreateView仅在单击它时才会被调用。我不确定,如果这是问题,但我会看看它!该片段不会显示,我只将其作为菜单上的一项来保存数据,因此OnCreateView仅在单击它时才会被调用。我不确定,如果这是问题,但我会看看它!