【问题标题】:List Data Format列表数据格式
【发布时间】:2012-10-31 07:01:05
【问题描述】:

我正在从表中获取数据作为列表并将其添加到子列表中,但我得到了我没想到的输出。我不知道如何解决这个问题,以便我可以得到我需要的输出 我已附上代码请帮我解决这个问题??

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]]

【问题讨论】:

  • 我尝试清除 sub.clear();添加到主列表后列表子中的数据。但是,在下次添加数据时,它也会更新上一个条目。

标签: android sqlite list arraylist


【解决方案1】:
  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;
}

尝试在游标内声明子列表,它会正常工作

【讨论】:

  • 非常感谢你帮助我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
相关资源
最近更新 更多