2012-10-31 50 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