当第一次活动开始时,列表视图不会填充数据库

问题描述:

我正在使用SQlite Database.I创建2个表并填充它们(正常工作),并使用那里的数据以列表视图显示。当第一次列表适配器正在填充列表视图时显示newDATA varibale为零。一些数据。但是当我回去并进一步开始该活动时,newDATA具有正确的值。 。我用下面的代码当第一次活动开始时,列表视图不会填充数据库

public ArrayList<HashMap<String, Object>> GetDataFirst(String id) { 
     ArrayList<HashMap<String, Object>> firstvariable = new ArrayList<HashMap<String, Object>>(); 



     Cursor c =sdb.rawQuery("Select * from table_name ",new String[]{id}); 
     String[] colums = c.getColumnNames(); 



     while (c.moveToNext()) { 
      HashMap<String, Object> record = new HashMap<String, Object>(); 
      for (int i = 0; i < colums.length; i++) { 
       record.put(colums[i], c.getString(c.getColumnIndex(colums[i]))); 

      } 

      { 
       ArrayList<HashMap<String, String>> now_add = GetmainData(id, record.get("vget").toString()); 
       record.put("NewDATA", now_add); 

       hint.add(record); 


      } 
      }  

     } 
      c.close(); 
     return firstvariable ; 
    } 



public ArrayList<HashMap<String, String>> GetCluesDataVerical(String id,String vhid) { 
     ArrayList<HashMap<String, String>> hint = new ArrayList<HashMap<String, String>>(); 

     Cursor c = sdb.rawQuery("SELECT * FROM table_data", new String[] {id,vhid}); 
     String[] colums = c.getColumnNames(); 
     while (c.moveToNext()) { 
      HashMap<String, String> record_add = new HashMap<String, String>(); 
      for (int i = 0; i < colums.length; i++) { 
       record_add.put(colums[i], c.getString(c.getColumnIndex(colums[i]))); 
      } 


      hint.add(record_add); 
     } 
      c.close(); 
     return hint; 
    } 

,并在列表适配器我这些如下呼吁:

recordData=context.crossDatabaseAdapter.GetDataFirst(value); 

wArray = (ArrayList<HashMap<String, String>>) recordData.get(position).get("NewDATA"); 

我尝试了很多,但仍然没有提出任何解决方案。

当您停止应用程序并且应用程序启动时,您必须使用实例状态来保存列表适配器的内容,您必须检查是否可以检索数据,这要归功于实例状态,否则从数据库加载数据,这可能会解决你的问题