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

1 に答える 1

0

新しい配列リストを参照する必要があるため、これを使用します

public List<List<String>> fetchData(){
    List<List<String>> main= new ArrayList<List<String>>();

    String qry="SELECT * FROM "+myTable+"";
    SQLiteDatabase db= this.getReadableDatabase();
    Cursor cursor=db.rawQuery(qry, null);
    if (cursor.moveToFirst()) {
        do {
            System.out.println("-TblPOmaster-");
            List<String> sub= new ArrayList<String>();
            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;
}
于 2012-10-31T07:34:18.550 に答える