2013-05-01 2 views
0

Я использую SQlite Database.I создаю 2 таблицы и заполняю их (отлично работает) и использую там данные для отображения в виде списка. когда первый список временного списка заполняет просмотр списка, show 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"); 

Я пробовал много Но до сих пор не приходят с любым решением.

ответ

0

Необходимо использовать состояние экземпляра, чтобы сохранить содержимое адаптера списка, когда вы останавливаете приложение, и когда приложение запускается, вы должны проверить, можете ли вы получить данные благодаря состоянию экземпляра, иначе загрузите данные из базы данных, это может решить ваша проблема

Смежные вопросы