2012-10-31 52 views
0

我正在提取數據表格作爲列表並將其添加到子列表中,但我得到的輸出是我沒有想到的。我不知道如何解決這個問題,以便我可以得到我需要的輸出 我附上了代碼,請幫我解決這個問題?列表數據格式

public List<List<String>> fetchData(){ 
    List<List<String>> main= new ArrayList<List<String>>(); 
    List<String> sub= new ArrayList<String>(); 
    String qry="SELECT * FROM "+myTable+""; 
    SQLiteDatabase db= this.getReadableDatabase(); 
    Cursor cursor=db.rawQuery(qry, null); 
    if (cursor.moveToFirst()) { 
     do { 
      System.out.println("-TblPOmaster-"); 
      sub.add(cursor.getString(0));    
      sub.add(cursor.getString(1)); 
      sub.add(cursor.getString(2)); 
      main.add(sub); 
      System.out.println("Data:"+main); 
     } while (cursor.moveToNext());  
    } 
    cursor.close(); 
    db.close(); 
    return main; 
} 

Output what i'm Getting Now 


Data:[[a1,a2,a3]] 
    Data:[[a1,a2,a3,b1,b2,b3],[a1,a2,a3,b1,b2,b3]] 
    Data:[[a1,a2,a3,b1,b2,b3,c1,c2,c3],[a1,a2,a3,b1,b2,b3,c1,c2,c3],[a1,a2,a3,b1,b2,b3,c1,c2,c3]] 

Output what i need 


Data:[[a1,a2,a3]] 
    Data:[[a1,a2,a3],[b1,b2,b3]] 
    Data:[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]] 
+0

我試圖清理sub.clear();在添加到main後列表sub中的數據。但是,下一次添加數據時,它也會更新之前的條目。 – Aadi

回答

0
if (cursor.moveToFirst()) { 
     do { 
     List<String> sub= new ArrayList<String>(); 
     System.out.println("-TblPOmaster-"); 
     sub.add(cursor.getString(0));    
     sub.add(cursor.getString(1)); 
     sub.add(cursor.getString(2)); 
     main.add(sub); 
     System.out.println("Data:"+main); 
    } while (cursor.moveToNext());  
    } 
    cursor.close(); 
    db.close(); 
return main; 
} 

試圖聲明子列表光標內,它會正常工作

+0

非常感謝您的幫助:) – Aadi