Android 列表数据格式
我将从表中获取数据作为列表,并将其添加到子列表中,但我得到了出乎意料的输出。我不知道如何解决这个问题,以便我可以得到我需要的输出 我已经附上代码,请帮助我解决这个问题Android 列表数据格式,android,sqlite,list,arraylist,Android,Sqlite,List,Arraylist,我将从表中获取数据作为列表,并将其添加到子列表中,但我得到了出乎意料的输出。我不知道如何解决这个问题,以便我可以得到我需要的输出 我已经附上代码,请帮助我解决这个问题 public List<List<String>> fetchData(){ List<List<String>> main= new ArrayList<List<String>>(); List<String> sub= new
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]]
公共列表fetchData(){
List main=new ArrayList();
List sub=new ArrayList();
字符串qry=“从“+myTable+”中选择*;
SQLiteDatabase db=this.getReadableDatabase();
Cursor=db.rawQuery(qry,null);
if(cursor.moveToFirst()){
做{
System.out.println(“-TblPOmaster-”);
sub.add(cursor.getString(0));
sub.add(cursor.getString(1));
sub.add(cursor.getString(2));
主。添加(子);
System.out.println(“数据:+main”);
}while(cursor.moveToNext());
}
cursor.close();
db.close();
回水总管;
}
输出我现在得到的
数据:[[a1、a2、a3]]
数据:[[a1,a2,a3,b1,b2,b3],[a1,a2,a3,b1,b2,b3]]
数据:[[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]]
输出我需要的
数据:[[a1、a2、a3]]
数据:[[a1,a2,a3],[b1,b2,b3]]
数据:[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]
if(cursor.moveToFirst()){
做{
List sub=new ArrayList();
System.out.println(“-TblPOmaster-”);
sub.add(cursor.getString(0));
sub.add(cursor.getString(1));
sub.add(cursor.getString(2));
主。添加(子);
System.out.println(“数据:+main”);
}while(cursor.moveToNext());
}
cursor.close();
db.close();
回水总管;
}
尝试在光标内声明子列表,它将正常工作我尝试清除子列表clear();添加到main后列表子节点中的数据。但在下次添加数据时,它也会更新以前的条目。非常感谢您的帮助:)
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;
}